在VS2010中使用Release Configuration进行构建时未分配的值

时间:2011-04-29 19:31:07

标签: c++ visual-studio-2010 build release hwnd

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

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

当我在调试配置中调试此代码时,为“handle”分配了正确的值,但是当我在发布版本中调试它时,“handle”保持为NULL。

getWindowHandle()只是一个简单的访问者:

HWND PlatformManager::getWindowHandle()
{ 
   return windowHandle;
}
在调试/发布版本中进行调试时,“windowHandle”都具有非NULL值。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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

简而言之,如果你只需调试一个发布版本但你的调试器正在玩弄你,那么你总是可以使用古老的 printf debugging 。添加一些跟踪功能,例如使用OutputDebugString,并查看handle此时是否真的保持为NULL。

char buf [256]; HWND句柄= NULL; handle = pPlatform-> getWindowHandle(); OutputDebugStringA(_itoa((int)handle,buf,10));