0

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

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

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

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

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

在调试/发布版本中进行调试时,“windowHandle”具有非 NULL 值。

谢谢您的帮助。

4

1 回答 1

0

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

简而言之,如果您只需要调试一个发布版本,但您的调试器正在欺骗您,您总是可以求助于古老的printf 调试。添加一些跟踪函数,例如使用 OutputDebugString,并查看handle此时是否真的保持 NULL。

字符缓冲区[256];HWND 句柄 = NULL;句柄 = pPlatform->getWindowHandle(); OutputDebugStringA(_itoa((int)handle, buf, 10));

于 2011-04-29T19:33:50.643 回答