我遇到编辑& amp;将VS2015升级到升级后继续功能3.我当前的版本是MS VS Community 2015,版本14.0.25431.01,更新3
我知道在调试中只能应用一些更改。这是我的经验,直到我安装VS2015更新3.此后任何更改总是被拒绝,即编辑和继续是无用的。我相信我的项目中的设置是正确的(或者至少它曾用于以前版本的VS)。
我会感激任何帮助。提前致谢
重现问题的步骤:
HMODULE hModule = ::GetModuleHandle(nullptr);
if (hModule != nullptr)
修改为if (hModule != NULL)
实际上,任何本机Win32 Debug C ++应用程序中的任何更改都无法在MS VS调试会话中应用。
Libor Jendele
答案 0 :(得分:1)
重新编译期间的警告ignoring unknown option '-Z+'
表示原始CPP文件是使用未记录的编译器开关/ d2Zi +编译的(根据this,它似乎被/ Zo替换)。此开关主要用于通过优化代码(here's a good post about it by Bruce Dawson *)获得更丰富的调试信息。这与/ ZI(带有编辑和继续的程序数据库)有些不一致 - 如果CPP文件没有使用/ ZI编译,调试器/编译器应该拒绝在编辑和继续期间重新编译它,但这会滑过裂缝,在重新编译期间导致此类随机/不可识别的错误。
正确的解决方法是将/ d2Zi +替换为/ Zo(这是交换机的文档和支持版本),或者从您的cl命令行中完全删除/ d2Zi +,因为AFAIK它没有为"调试"配置,编辑和继续应该照常工作。
*注意:Bruce的博客提到,如果在Debug>下启用了EnC,那么发布配置的丰富调试信息将不可用。选项,但这已经过时且目前不正确 - 它实际上是选项"启用原生兼容模式"在VS 2015中,与/ d2Zi +不兼容(阻止优化调试变得丰富和详细)。
答案 1 :(得分:0)
在VS 2012 Update 3中,有一个breaking changes in Edit & Continue。引用:
允许预编译(仅限本机):调试选项Debug>选项>一般> Visual Studio 2015 Update 3和默认调试程序不再支持允许预编译(仅限本机)。
禁用此选项,重建解决方案并重试。它应该工作。