2009-07-16 81 views
1

如果我在VS2008中创建一个新的win32 C++项目,我可以使用编辑&继续它就好了,但对于这个遗留项目,我正在尝试使用/启用它失败。为什么编辑和继续在VS2008中使用传统的C++ win32项目工作?

这件事情我已经检查:

工具 - >选项 - >调试 - >编辑并继续 - >启用编辑并继续为ON。

调试信息格式:程序数据库(/ ZI)

代码生成 - >启用函数级链接:是(/戈瑞)

看了腐败.ILK文件。我找不到任何.ILK文件 - 它们在2008年仍在使用吗?

但是,当我踏进程序,改变下一行,并再次实施步骤,我得到:

“这个源文件已经改变了它不再匹配......”

而非

“你想编辑&继续应用你的代码更改。”

这个项目有什么问题E & C不起作用?

回答

0

我假设你有调试符号的/ etc和传统的C++应用程序已编译的这种支持...

如果没有,那么你会遇到的是代码是不是“仪器”问题以允许注入替代代码。

我会怀疑,在输出代码格式的变化会使得VC++ 2008不兼容......我怀疑微软在加入这样的向后兼容性(至2008年VS,我觉得他们甚至使得它很难使用旧版本的不使用所述特定VS .NET)

+1

很确定这就是“调试信息格式:程序数据库”是。该项目已被2008ifi ed,fwiw,使用微软的自动升级设施。 – 2009-07-18 21:17:49

0

该消息框

这个源文件已经改变。它不再与用于构建正在调试的应用程序的文件的版本相匹配。

似乎只有当我在断点所在的确切线上进行了代码更改时才会出现。

我发现我可以点击确定按钮。然后,当我按下F10实际执行已更改的行时,“编辑并继续”开始并重新编译代码。

之后,断点被禁用,虽然(它显示了一个带有感叹号的黄色三角形):

disabled breakpoint

要重新启用它,只需右键单击该断点,然后选择“位置...“:

right click breakpoint

能带给你这个对话框:

breakpoint location dialog

,你需要勾选‘允许的源代码是从原始版本’复选框不同的点击。 确定并且你的断点将被再次启用

相关问题