本博客主要讲解
1.如何用def模块定义文件导出函数。
2.动态导入动态链接库
3.通过例子的形式讲解。
- 建立一个DLL工程
(1)win32项目
(2)DLL
(3)空项目
(4)名称为Dll1 - 资源文件中添加
(1).cpp文件 Dll1.cpp
(2).def文件 Dll1.def
(3)编辑Dll1.cpp文件如下
int add(int a,int b)
{
return a+ b;
}
int subtract(int a,int b)
{
return a - b
}
(4)编辑Dll1.def文件如下
LIBRARY Dll2
EXPORTS
add
subtract
(5)生成Dll1.dll
- 新建一个测试DLL的项目
(1)win32控制台应用程序 TestDll
(2)把Dll1.dl放到这个项目文件夹中
(3)得到结果 如下图
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
HINSTANCE hInst;
hInst = LoadLibrary(("Dll4.dll"));
typedef int(*ADDPROC)(int a, int b);
ADDPROC Add = (ADDPROC)GetProcAddress(hInst, "add");
if (!Add)
{
cout << "it is ok!\n";
return -1;
}
cout <<"add(5,3) = "<< Add(5, 3) << endl;
system("pause");
return 0;
}