将 MFC C++项目从 VS 2008 升级到 2013 时出错

Error while upgrade MFC C++ project from VS 2008 to 2013

本文关键字:2013 出错 2008 C++ MFC 项目 VS      更新时间:2023-10-16

>我有VC++ 6.0的旧项目,升级到VS2008并修复了一些错误,然后编译成功。但是从VS2008升级到VS2013或VS2015后,我收到 753 错误,例如:

1>  bitbuf.cpp
1>C:Program FilesMicrosoft Visual Studio 12.0VCatlmfcincludeatlcomcli.h(166): warning C4003: not enough actual parameters for macro 'Swap'
1>C:Program FilesMicrosoft Visual Studio 12.0VCatlmfcincludeatlcomcli.h(166): error C2062: type 'void' unexpected
1>          C:Program FilesMicrosoft Visual Studio 12.0VCatlmfcincludeatlcomcli.h(312) : see reference to class template instantiation 'ATL::CComPtrBase<T>' being compiled
1>C:Program FilesMicrosoft Visual Studio 12.0VCatlmfcincludeatlcomcli.h(166): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 12.0VCatlmfcincludeatlcomcli.h(167): error C2059: syntax error : '{'
1>C:Program FilesMicrosoft Visual Studio 12.0VCatlmfcincludeatlcomcli.h(167): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 12.0VCatlmfcincludeatlcomcli.h(334): warning C4003: not enough actual parameters for macro 'Swap'
1>C:Program FilesMicrosoft Visual Studio 12.0VCatlmfcincludeatlcomcli.h(351): warning C4003: not enough actual parameters for macro 'Swap'
1>C:Program FilesMicrosoft Visual Studio 12.0VCatlmfcincludeatlcomcli.h(358): warning C4003: not enough actual parameters for macro 'Swap'
1>C:Program FilesMicrosoft Visual Studio 12.0VCatlmfcincludeatlcomcli.h(364): warning C4003: not enough actual parameters for macro 'Swap'
1>C:Program FilesMicrosoft Visual Studio 12.0VCatlmfcincludeatlcomcli.h(391): warning C4003: not enough actual parameters for macro 'Swap'
1>C:Program FilesMicrosoft Visual Studio 12.0VCatlmfcincludeatlcomcli.h(399): warning C4003: not enough actual parameters for macro 'Swap'
1>C:Program FilesMicrosoft Visual Studio 12.0VCatlmfcincludeatlcomcli.h(411): warning C4003: not enough actual parameters for macro 'Swap'

来自 atlcomcli.h 的 753 错误

我也尝试使用VS2010,不同的错误,但仍然不知道在哪里修复

1>  bitbuf.cpp
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(117): error C2059: syntax error : 'constant'
1>          C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(131) : see reference to class template instantiation 'std::numeric_limits<_Ty>' being compiled
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(118): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(224): error C2059: syntax error : 'constant'
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(225): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(289): error C2059: syntax error : 'constant'
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(290): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(355): error C2059: syntax error : 'constant'
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(356): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(419): error C2059: syntax error : 'constant'
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(420): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(482): error C2059: syntax error : 'constant'
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(483): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(545): error C2059: syntax error : 'constant'
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(546): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(611): error C2059: syntax error : 'constant'
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(612): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(739): error C2059: syntax error : 'constant'
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(740): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(804): error C2059: syntax error : 'constant'
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(805): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(869): error C2059: syntax error : 'constant'
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(870): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(934): error C2059: syntax error : 'constant'
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(935): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(1062): error C2059: syntax error : 'constant'
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(1063): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(1127): error C2059: syntax error : 'constant'
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(1128): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(1193): error C2059: syntax error : 'constant'
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(1194): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(1260): error C2059: syntax error : 'constant'
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(1261): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(1327): error C2059: syntax error : 'constant'
1>C:Program FilesMicrosoft Visual Studio 10.0VCincludelimits(1328): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>  curve.cpp
1>  edittext.cpp

谁能告诉我我做错了什么?感谢您的阅读。

几天后,我发现我已经在我的代码中定义了 Swap 函数,它会与 atlcomcli.h 中的 Swap 函数冲突,然后我重命名我的交换函数,一切正常。