我的调试器似乎运行的代码不同于我正在构建的代码

时间:2013-03-04 21:13:13

标签: c++ windows visual-studio-2010 debugging dll

我在Windows 7上使用Visual Studio 2010,用C ++编写。在我的程序中,我有一个.dll,它包含我在程序中经常使用的一堆函数。最近,我在更改.dll方面遇到了很多麻烦。每当我更改我的DLL中定义的函数时,程序生成并运行时,更改似乎不会生效。也就是说,我相信每次成功构建(或重建)我的解决方案时,我的DLL都没有正确更新。

如果我尝试在.cpp文件中的任何函数中设置断点(用户代替DLL隐藏的那个函数),visual studio会告诉我代码不会被执行而且断点不能在那里设置。但是,今天早些时候我可以在那里设置一个断点。

此外,我的一个函数将“Frame Received”打印到visual studio中的调试输出。这仍然在发生,所以显然这个功能的某些版本仍然有效。所以我想尝试连续10次打印“Frame Received”,看看我的更改是否真的生效了。奇怪的是,即使在构建和清理/重建之后,程序仍然只写一次“Frame Received”,好像它只是忽略了我的更改。

我不确定是什么导致这种情况,但正如我所说,它只是看起来我的.dll没有更新和/或visual studio使用旧版本的.dll而不是最新版本。无论哪种方式,我都不确定如何解决这个问题。有什么想法吗?

编辑:我之前忘记提及,在调试时,我试图进入其中一个我无法在其中放置断点的函数,并且我遇到了以下错误消息:

error

1 个答案:

答案 0 :(得分:2)

可能,构建的输出会进入其他目录。 - 检查你的outdir设置。