动态链接库的生成(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=,b=,c=,d=;
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

上一篇:为小米(红米)6A解锁_ROOT_安装天下游虚拟定位教程_已亲身验证通过!附图


下一篇:图形数据库Neo4J简介