我们有一个使用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'正在编制
有以下信息:
第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?