VC中DLL工程创建注意事项

来源:互联网 发布:linux open函数头文件 编辑:程序博客网 时间:2024/05/29 03:35

DLL三种类型  (使用共享MFC DLL的规则,带静态链接MFC的规则,MFC扩展DLL)

通常如果开发的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



0 0
原创粉丝点击