VC中DLL工程创建注意事项
2015-07-29 14:37
281 查看
DLL三种类型 (使用共享MFC DLL的规则,带静态链接MFC的规则,MFC扩展DLL)
通常如果开发的DLL不是跨平台使用的,都是创建MFC扩展DLL,这样能最大限度的使用DLL。
DLL导出类通常要添加宏AFX_EXT_CLASS来定义:
这两种方式的定义是等价的;
也可参考msdn的帮助说明:
https://msdn.microsoft.com/zh-cn/library/9xyb5w93(VS.80).aspx
通常如果开发的DLL不是跨平台使用的,都是创建MFC扩展DLL,这样能最大限度的使用DLL。
DLL导出类通常要添加宏AFX_EXT_CLASS来定义:
class <span style="color:#ff6666;">AFX_EXT_CLASS</span> TranFileWriter { public: TranFileWriter(void); ~TranFileWriter(void); void SaveTranFuncData(CString strTranFucFile,std::map<CString , std::vector<TranFunctionDataPtr>> &TsAnatomyData); };
<span style="color:#ff6666;">#ifdef MARKER_EXPORTS #define MARKER_API _declspec(dllexport) #else #define MARKER_API _declspec(dllimport) #endif</span> class MARKER_API TranFileWriter { public: TranFileWriter(void); virtual ~TranFileWriter(void); void SaveTranFuncData(CString strTranFucFile,std::map<CString , std::vector<TranFunctionDataPtr>> &TsAnatomyData); };
这两种方式的定义是等价的;
#ifndef AFX_EXT_DATA #ifdef _AFXEXT #define AFX_EXT_CLASS AFX_CLASS_EXPORT #define AFX_EXT_API AFX_API_EXPORT #define AFX_EXT_DATA AFX_DATA_EXPORT #define AFX_EXT_DATADEF #else #define AFX_EXT_CLASS AFX_CLASS_IMPORT #define AFX_EXT_API AFX_API_IMPORT #define AFX_EXT_DATA AFX_DATA_IMPORT #define AFX_EXT_DATADEF #endif #endif其中在DLL工程中会定义宏AFXEXT来确保导出设置;
也可参考msdn的帮助说明:
https://msdn.microsoft.com/zh-cn/library/9xyb5w93(VS.80).aspx
相关文章推荐
- 一次完整的HTTP请求所经历的7个步骤
- laravel5的坑
- 创建第一个MVC项目
- JFinal和Struts功能特点对比分析
- 2015.7.29国内TMT行业融资简报
- UVa 11988 悲剧文本 采用链表
- centos6.3中文输入法的安装
- 如何通过反射构造内部类对象
- IOS资料
- 使用twig来组装数据使数据结构可视化
- java在字符串中获取满足正则表达式的字符
- 冒泡排序小程序
- Ogre立方体查询
- Kafka: 大数据处理的利器
- 使用Jenkins进行持续集成(三)-邮箱与用户
- Android问题-selection contains a component,button7,introduced in an ancestor and cannot be deleted.
- hdu 1166 敌兵布阵 【线段树】
- redis.conf详解
- BaseAdapter使用
- iOS开发UI篇—Quartz2D使用(绘制基本图形)