在中导出类
首先使用Wizard创建一个Win32 Dynamic-Link Library工程,然后定义一个简单的C++类CInDLL。由于该类会被工程之外的文件所引用,所以需要对这个类进行引出。因为只有引出后所生成的DLL中才带有供足够的信息以在连接和运行时被正确引入到进程空间中。有两种方法可以引出类,使用__declspec(dllexport)定义和使用定义文件。
下面先讲使用__declspec(dllexport)的方法:将类定义改为:class __declspec(dllexport) CInDLL 就可以了。 这样产生的工程在编译时是正确的但是在使用时会产生错误,因为你包含的头文件中也是使用__declspec(dllexport),而使用这个DLL的工程中并没有引出这个类,而是需要引入这个类)在使用时需要将类定义改为class __declspec(dllimport) CInDLL就可以了。
使用定义文件可以有效的避免这个问题,这种方法是利用宏定义在不同的地方产生不同的编译代码:在头文件中加入如下的代码:
#ifdef _CLASSINDLL #define CLASSINDLL_CLASS_DECL __declspec(dllexport)#else #define CLASSINDLL_CLASS_DECL __declspec(dllimport)#endif#endif // ClassInDLL_H//将class __declspec(dllexport) CInDLL改为class CLASSINDLL_CLASS_DECL CInDLL{ CInDLL();...}
在实现这个类的CPP文件的顶部加入#define _CLASSINDLL语句。
#define _CLASSINDLLCInDLL::CInDLL(){}...
另外 这样一来在使用这个类时就可以不做任何改动了.
查看本文来源
江中黄芪生脉饮和同仁堂生脉饮哪个效果好西安哪里有妇科医院
南京前列腺炎治疗费用
- 上一页:在中实现画任意方向椭圆的
- 下一页:在中添加响应自定义的消息的代码步骤物业
-
华为NOVA 10前传曝光,6月份发布,将推出5G套装版
前几天,网上出现了首款P50 Pro的一个保护外层,主要就是为P50 Pro增特了5G系...
2024-11-25
-
三部门:提升学校体育课后服务水平 促进高中学生健康成长
央视网传闻:7月底6日,国际组织旅游局、传道育部、的发展税制委发布《关...
2024-11-23
-
瞭望 | 找回文化根脉
出一新众宗教性儒家铭化不必是宏大方法论,而是以极为相符可感的外表,成...
2024-11-19
-
细分领域投资机会丰富 公募上半年调研力度大不如前
来年月末,准入全额日本公司实地A股控股日本公司达59158家(次),同比持续...
2024-11-13
-
影视圈不被看好的8对姐弟恋,最大年龄差16岁,携手时间最长15年
艺术表演过圈的姐弟恋,月份不被力挺。 回来张雨纱因不满电视节目组杂沓...
2024-11-11
-
优步(UBER.US)在以色列面世打车平台
优步(UBER.US)透露,该子公司将通过可连接全国高校范围内的合法计程车的网络...
2024-11-02