1. 建立一个win32项目,选择dll创建,如果是已经编写好的类,则可以勾选”空项目”。
2. 在“头文件”目录下建立新的头文件,这里以Node类为例:Node.h,将编写好的Node的声明写入Node.h中。
3. 注意,一般类的封装此时就应当写Node.cpp从而实现该类中的一些成员方法,但是由于Node类使用了模板(template),因此需要将实现和声明写在同一个文件中,所以这里我们不再建立Node.cpp文件,而是直接将成员函数的实现写在Node.h中。
4. 另外,Node类的声明也跟一般类声明不一样,一般Node的声明是:
template <class T> class Node{...};
这里由于要建立DLL封装的类,于是我们按如下语法声明:
template <class T> class __declspec(dllexport) Node{...};
这样一来,其他项目就可以使用这个导出的DLL文件中的类了(“dllexport”)。
5. 接着进行编译。在debug文件夹下会有Node.dll文件。
6. 如果将要使用该DLL的项目是C++项目,那我们还缺少Node.lib,此时我们需要使用这个Node.dll生成其相应的lib文件。(注:如果一开始选择建立的Node项目是MFC DLL,则编译会直接生成dll和lib文件,但是文件本身会很大,两个dll的区别暂时不清楚)。
7. 使用lib命令就可以生成lib文件:C://Program Files//Microsoft Visual Studio//VC98//Bin>LIB /out:D://Node.lib /MACHINE:IX86 /DEF:D: //Node.dll
8. 为了方便,将上述Node.dll,Node.lib,Node.h一起放在Node_lib文件夹下。将此文件夹放在将要使用Node.dll项目的目录下。具体说来,假设此项目为dll_test,则放在dll_test项目的.cpp,.h文件的目录下。
9. 在开发环境中(这里默认为visual studio 2010),为dll_test添加附加的外部依赖。具体方法是在“属性”-〉“链接器”-〉“输入”-〉“附加依赖项”中输入“./Node_lib/Node.lib”,确定。
10. 建立测试方法,生成Node对象,调用相应函数即可。