1.创建dll
(1)创建mfc的*.dll项目,直接在*.h文件下写全局函数
int GetnSize(int n);
(2)在*.cpp中写
int GetnSize(int n)
{
return n + 1;
}
(3)*.def中写
EXPORTS
GetnSize
2.两者的区别
静态dll使用方便,针对性强、静态调用、不可以动态、共享使用。直接链接到exe文件
动态dll可以动态、共享使用,有利于多个程序共同使用,节约资源。不链接到exe文件,只建立一个接口
3.调用方式
(1)静态调用方式(两步)
第一步:加载*.lib。 有两种方式,直接使用#pragma comment(lib, "*.lib")
或者
“属性-链接器-输入-附加依赖项”填写*.lib
第二步:在调用的cpp文件中#include "*.h"
(2)动态调用方式
假设函数的声明为:int GetnSize(int n);
//函数指针声明
typedef int (WINAPI MESSAGE)(int n);
MESSAGE *pMessage = 0;
//加载*.dll
HINSTANCE hDLLDrv = LoadLibrary("*.dll");
//获取message函数的指针
if(hDLLDrv)
{
pMessage = (MESSAGE *)GetProcAddress(hDLLDrv, "GetnSize");
}
然后就可以这样调用函数了:
int nSize = pMessage(1);