在Qt中使用afx_msg和msvc2008编译器

| 如标题所示,我正在使用msvc2008编译器在Qt中进行项目。 我正在尝试使用的示例代码使用了afx_maps,据我所知(我真的不知道afx的工作原理),下面的代码意味着当消息WM_PI_RAWDATA_READY为收到(我不知道从何处或如何接收),将触发函数OnRawDataReady。
//{{AFX_MSG_MAP(CPDImfcDlg)
ON_MESSAGE(WM_PI_RAWDATA_READY, OnRawDataReady )
//}}AFX_MSG_MAP
我尝试将代码复制到我的项目中,然后在标头中添加#include,但这会给我以下错误:
D:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\ATLMFC\\INCLUDE\\afx.h:24: error: C1189: #error :  Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
我在其他地方找到的修复程序似乎是Visual Studio中的项目设置,因此我不确定如何解决它。 关于如何解决此问题或如何解决afx_msg问题的任何想法? 非常感谢     
已邀请:
        只执行错误消息中所说的内容并向
_AFXDLL
预处理器符号加2怎么办?根据您的构建环境,您只需要将其作为自变量添加到编译器命令行中即可(ѭ4remember,如果我没有记错的话)。但是,当您使用Qt时,您可能还是会得到一个* .pro文件,可以将其添加到其中(使用
DEFINES
变量)。因此,只需将此行添加到您的* .pro文件中
DEFINES += _AFXDLL
但是仅仅将MFC代码集成到Qt应用程序(这是两个完全不同的GUI和OS抽象库)中并不会带来太大帮助,因为它们不能很好地协同工作,更不用说设计问题了。 。也许您可以将应用程序从MFC移植到Qt。     
        它基本上说您必须使用静态库或DLL。你不能混。 就像您说的那样,这是项目设置的一部分。     

要回复问题请先登录注册