当然,可以自己定义宏,不过其实mfc已经帮我们做了
导出类的时候直接用这个AFX_EXT_CLASS 就ok了
class AFX_EXT_CLASS CMyDlg : public CDialogEx
{
DECLARE_DYNAMIC(CMyDlg)
public:
CMyDlg(CWnd* pParent = NULL); // 标准构造函数
virtual ~CMyDlg();
// 对话框数据
enum { IDD = IDD_MYDLG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
};
然后在工程属性- c/c++ - 预处理器 - 预处理器定义 添加 _AFXEXT; WIN32;_WINDOWS;_DEBUG;
进去看宏,发现都已经帮我们做好了,当然你喜欢也可以自己去定义 __declspec(dllexport)
#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