如果已经写好了一个C++的类exp,希望把它做成dll动态链接库,这里介绍一种简单的方法。
1、制作dll
利用VC6新建工程命名为exp并选择win32 dynamic-Link Library,确定完成。将exp的头文件exp.h及cpp文件exp.cpp拷入工程exp的目录下,并覆盖重复文件。
与一般写类的定义不同,在exp.h中需要写成
class __declspec(dllexport) exp
{
...
}
从而说明以后从dll要被导出的类是哪一个。这样编译完就会产生exp.dll和exp.lib两个文件。
2、dll的调用
方法一:
当已经生成dll后,可以在其它程序中调用dll中的类和成员函数。方法如下:
a)把exp.dll和exp.lib复制到调用程序的执行路径下,注意不是debug路径下。
b)在project->setting->link里添加exp.lib
c)把exp.h复制到调用程序的执行路径下,将__declspec(dllexport)改成__declspec(dllimport)
这样在主程序中就可以使用exp.h中声明的类和它的成员函数了。
方法二(推荐):
在方法一中,你每次建立一个工程都需要把 TransferFunction.dll,TransferFunction.lib,TransferFunction.h三个文件拷贝到工程里面 去,事实上这只发挥了dll对类的代码保护的功能,并没有多大的减轻编程人员的工作量,下面的方法可以减少编程人员的工作量,具体步骤:
1:将TransferFunction.dll扔到windows/system32下
2:将.TransferFunctionlib扔到VC的lib目录里
3:将方法一中的TransferFunction.h扔到VC的include目录里
4:同方法一的最后一步。