我们将 动态链接库(DLL)总结---静态链接库的创建与使用(4)中的工程修改下属性即可,如下图:
编写代码。
编辑Lib1.h文件
**extern "C" __declspec(dllexport) void Msg();**
Lib1.cpp文件内容不变,然后重新生成即可。
调用Dll
1)隐式链接
将生成的lib文件和dll文件拷贝到要测试项目目录下。
测试代码如下:
#include "../Win32Project1/Lib1.h"
#pragma comment(lib,"Win32Project1.lib")
int _tmain(int argc, _TCHAR* argv[])
{
Msg();
return 0;
}
2)显示链接
此时只需要dll文件即可,不需要使用lib文件
测试代码如下:
int _tmain(int argc, _TCHAR* argv[])
{
//1 定义调用函数指针
typedef void(*FUN)();
//2 获取DLL的实例句柄
HINSTANCE hInst = LoadLibrary(L"Win32Project1.dll");
//3 得到dll中的函数地址
FUN pMsg = (FUN)GetProcAddress(hInst, "Msg");
//4 使用函数
pMsg();
//5 释放DLL
FreeLibrary(hInst);
return 0;
}