zoukankan      html  css  js  c++  java
  • 动态链接库的生成(dll)和 动态链接库隐式and显式调用

    一、构建动态链接库(dll.dll dll.lib dll.h)

    说明: .dll 是在执行程序是调用  .lib 是在连接程序是调用  .h是在编译程序时调用

       1.头文件(声明导入函数):_declspec(dllimport) int add(int a,int b);//(头文件不参加.dll文件的生成)

       2.cpp文件(定义导出函数):_declspec(dllexport) int add(int a,int b){return a+b;}

       3.结果得到.dll .lib .h三个文件

    二、示例程序

    1、头文件dll

    #ifdef DLL_API
    
    #else
    
    #define DLL_API  
    
    // 将DLL_API定义为空;动态和静态都是可用的   在动态链接库中#define DLL_API _declspec(dllimport)可用,静态不行
    
    #endif
    
    DLL_API int add(int a,int b);
    
    
    DLL_API int subtract(int a,int b);
    class DLL_API Point
    
    {
    
     public:
    
            int product(int a,int b);//乘积
    
    };

    2、cpp文件

    #define DLL_API _declspec(dllexport)
    
    #include "pcl.h"
    
    int add(int a,int b){return a+b;}
    int subtract(int a,int b){return a-b;}
    int Point::product(int a,int b)
    
    {
    
         return a*b;
    
    }

    动态链接库隐式and显式调用

    一、隐式应用动态链接库(三个文件怎么用)

       1.新建一个控制台工程,在工程中添加.h头文件路径(菜单Tools->Options->Directors)//.h文件用法

       2.添加add.lib(工程名字上右键->Settings->Link)  或者在cpp中写下代码 #pragma comment (lib,"xxx.lib")   //.lib文件的用法

       3.注意将.dll和.lib文件放到工程文件夹下面//.dll 文件的用法

     实例代码

    #include <stdio.h>
    #include <iostream>
    #include "pcl.h"
    #pragma comment (lib,"pcl.lib")
    using namespace std;
    
    void main()
    
    {
    int a=0,b=2,c=3,d=3;
    c=add(a,b);
    }

    二、显式应用动态链接库(四句代码,红色部分替换即可)

    1、定义一个句柄对象  HINSTANCE hInst;

    2、加载函数  hinst=LoadLibrary("add.dll");

    3、定义函数指针类型  typedef int(*ADDPROC)(int a,int b);//注意,ADDPROC是一个类型,不是一个变量,过渡作用

    4、定义变量并赋值  ADDPROC Add=(ADDPROC)GetProAddress(hInst,"add");

    5、至此就可以运用函数Add(5,3);了。

    http://www.cnblogs.com/hlxs/p/3783920.html

    链接:http://pan.baidu.com/s/1o6KgHGe 密码:5zaj

  • 相关阅读:
    ubuntu 12.04 安装phpUnit
    composer 安装 ubuntu 12.04
    初学 Phreeze 4
    curl模拟文件post提交
    Phreeze Criteria的应用,在两个表里面查找多个符合条件的数据
    ubuntu 12.04 安装vim
    初学Phreeze 5 excel 表格,自动生成文件
    初学Phreeze 6,reporter文件
    //让程序在后台运行,即使关闭终端 仍可运行
    phpopenid中创建多级目录的方法
  • 原文地址:https://www.cnblogs.com/lwngreat/p/4750913.html
Copyright © 2011-2022 走看看