最近本猿搞一个MFC和QT混合编程的东西,经常出现这样的错误:
:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/ATLMFC/INCLUDE/atlbase.(3210): Parse error at "__identifier"
查了一下,发现网上信息很少,而且很多人说MFC和QT没法混合。其实他们两是可以一起玩的。所谓实践出真知,通过折腾,发现原来是stdafx.h中的afxwin.h中对ATL的因为导致的,而且和奇怪的是一旦把include放在头文件中,就会出现上述错误。否则也能编译通过。这样使用的程序猿,注意规避一下。
这里也给出解决方案。对于Qt的环境,修改pro工程文件:
DEFINES += _ATL_NATIVE_INITIALIZATION
对于VS环境,需要修改moc编译选项: