C++类 使用template 如何封装为DLL

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,则编译会直接生成dlllib文件,但是文件本身会很大,两个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对象,调用相应函数即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值