在VS 15.7

时间:2018-06-02 20:11:20

标签: c++ visual-studio-2017

我们有一个使用ATL的遗留代码,在Windows上运行正常,直到我们使用VS2017 15.6。当我们升级到15.7时,我们开始遇到以下编译错误:

1> c:\ program files(x86)\ microsoft visual studio \ 2017 \ enterprise \ vc \ tools \ msvc \ 14.14.26428 \ atlmfc \ include \ atlconv.h(395):错误C3861:' AtlThrowLastWin32':未找到标识符

1> c:\ program files(x86)\ microsoft visual studio \ 2017 \ enterprise \ vc \ tools \ msvc \ 14.14.26428 \ atlmfc \ include \ atlconv.h(406):注意:请参阅类模板参考实例化' ATL :: CA2WEX'正在编制

快速搜索找到以下链接:https://naughter.wordpress.com/2017/01/02/a-comprehensive-comparison-of-the-mfc-atl-changes-in-vs-2017-rc-compared-to-visual-studio-2015-update-3-part-1/

有以下信息:

第91行:对修复拼写错误的评论进行微小更改

第94行:AtlThrowImpl现在声明为__declspec(noreturn)

第112行:AtlThrowLastWin32现在声明为__declspec(noreturn)

我们正在使用两者

  

定义_ATL_NO_EXCEPTIONS

     

定义_ATL_CUSTOM_THROW

是否有人在最新VS(15.7)上成功编译了一个包含ATL的C ++项目,并启用了_ATL_NO_EXCEPTIONS和_ATL_CUSTOM_THROW?

0 个答案:

没有答案