Qt与MFC混合编程

文章参考https://blog.csdn.net/fasthorse/article/details/81214272,实测确实有效

最近本猿搞一个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编译选项:
Qt与MFC混合编程