我使用的是VS2010,我遇到了以下问题:
HWND handle = NULL;
handle = pPlatform->getWindowHandle();
当我在调试配置中调试此代码时,为“handle”分配了正确的值,但是当我在发布版本中调试它时,“handle”保持为NULL。
getWindowHandle()只是一个简单的访问者:
HWND PlatformManager::getWindowHandle()
{
return windowHandle;
}
在调试/发布版本中进行调试时,感谢您的帮助。
答案 0 :(得分:0)
发布版本包括优化,有时调试器可能会看到针对已优化的变量的错误值。它使Release构建更难调试,但这正是它们不被称为Debug构建的原因。 :)
简而言之,如果你只需调试一个发布版本但你的调试器正在玩弄你,那么你总是可以使用古老的 printf debugging 。添加一些跟踪功能,例如使用OutputDebugString,并查看handle
此时是否真的保持为NULL。
char buf [256]; HWND句柄= NULL; handle = pPlatform-> getWindowHandle(); OutputDebugStringA(_itoa((int)handle,buf,10));