在VS2010中使用发布配置构建时未分配处理的值

Value not assigned to handle when build using Release Configuration in VS2010

本文关键字:构建 分配 处理 配置 VS2010 布配置      更新时间:2023-10-16

我使用VS2010,我遇到以下问题:

HWND handle = NULL;
handle = pPlatform->getWindowHandle(); 

当我在调试配置中调试此代码时,将正确的值分配给"handle",但是当我在发布构建中调试此代码时,"handle"保持NULL。

gettwindowhandle()只是一个简单的访问器:

HWND PlatformManager::getWindowHandle()
{ 
   return windowHandle;
}

"windowHandle"在调试/发布版本中都有一个非null值。

谢谢你的帮助

发布版本包括优化,有时调试器可能会看到得到优化的变量的错误值。这使得发布版本更难调试,但这正是它们不被称为调试版本的原因。:)

简而言之,如果你只需要调试一个发布版本,但你的调试器在捉弄你,你总是可以求助于老式的printf调试。添加一些跟踪函数,例如OutputDebugString,看看handle在那一点是否真的保持NULL。

字符缓冲区[256];HWND handle = NULL;handle = pPlatform-> gettwindowhandle ();输出debugstringa (_itoa((int)handle, buf, 10));