【原创】C++创建和使用动态链接库之Win32DLL
动态连接库是在程序运行时加载到内存中的。
- Visual C++ 支持的动态链接库有三种:Win32 DLL,MFC常规DLL,MFC扩展DLL
- 创建win32 DLL
Win32 DLL中不可以使用MFC类库,导出的是标准的C函数。
1.新建->工程 选择Win32 Dynamic-Link Library。工程名为pow,点击确定进入下一步
选择第三项“一个可以导出某些符号的DLL工程”,其中包含了DLLMain函数,导出符号和实例代码。如图所示
工程会自动生成对应的文件和代码
在Pow.h中添加pow函数的声明
POW_API int pow(const int& x,const int& y); //POW_API是自动生成的一个宏,
//它的作用是表明该函数是导入还是导出的
在Pow.cpp中添加pow函数的实现
POW_API int pow(const int& x,const int& y){int z=1;
for(int i=0;i<y;i++)z*=x;return z;
}编译和链接程序,完成后会在debug目录里生成Pow.dll和Pow.lib两个文件,其中Pow.lib是动态链接库进行静态链接时使用
- 使用Win32 DLL(隐式链接)
创建一个Win32 Console Application工程,工程名为test。
把刚才生成的Pow.dll和Pow.lib文件放到该工程目录里,把Pow.dll拷贝一份放到debug目录里防止直接运行exe时找不到dll。
添加一个test.cpp文件
输入如下代码
#include <iostream>#include "Pow.h"
#pragma comment(lib,"Pow")using namespace std;int main()
{cout <<pow(3,3);return 0;
}