直接给出步骤:
===========函数的DLL封装===========
1.创建第一个项目:win32控制台程序,应用程序类型:DLL,附加选项:导出符号(命名:double_dll)
2.double_dll.h中加入函数定义
extern DOUBLE_DLL_API int doublefun(int);//DOUBLE_DLL_API 根据项目名称不同而不同
3.double_dll.cpp加入函数实现
extern DOUBLE_DLL_API int doublefun(int x)//DOUBLE_DLL_API 根据项目名称不同而不同
{
return 2*x;
}
4.编译(产生的将是dll、lib文件,不是应用程序)
注:如果用Dependency Walker可以在编译后生成的double_dll.dll中看到int doublefun(int),那么说明我们已经把函数doublefun封装进dll,剩下的就是阐述如何在另外一个项目中调用这个dll文件中的函数。
===========调用DLL文件中的函数===========
1.创建第二个项目:普通的win32空项目(命名:call_doublefun)
2.把第一个项目编译后产生的.h放入与第二个项目的.cpp文件同一目录(方便include)
3.把第一个项目编译后产生的.dll和.lib放入第二个项目的Debug(就是应用程序的出生地)
4.设置:链接器-常规-附加库目录XXX\Projects\call_doublefun\Debug(这里的“XXX”所指代的大家都明白的)
5.设置:链接器-输入-附加依赖项double_dll.lib
6.在第二个项目的cpp文件的合适位置加入两句话
第一句#include "double_dll.h"
第二句extern _declspec(dllimport) int doublefun(int);
举例:
#include <iostream>
#include "double_dll.h"
using namespace std;
extern _declspec(dllimport) int doublefun(int);
void main()
{
int x=0;
cout<<"Please input X:";
cin>>x;
cout<<"2*X=";
cout<<doublefun(x)<<endl;
}