2011-04-29 68 views
0

我使用VS2010,我也遇到過以下問題構建:值未分配處理時使用發佈配置在VS2010

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

當我調試代碼的調試配置正確的值分配給「處理」,但是當我在發佈版本中調試時,「句柄」保持爲NULL。

getWindowHandle()僅僅是一個簡單的訪問:

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

「windowHandle」 具有非NULL值都在調試/發行版本調試時。

感謝您的幫助。

回答

0

發佈版本包括優化,有時調試器可能會看到錯誤的值,以獲得優化的變量。它使得發佈版本更難以調試,但這正是它們不稱爲調試版本的原因。 :)

簡而言之,如果你只需要調試一個發佈版本,但是你的調試器在玩弄技巧,那麼你總是可以採用舊的printf調試。添加一些跟蹤功能,例如與OutputDebugString,並看看handle真的在這一點上保持NULL。

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

+0

謝謝,它真的好像調試器沒有看到正確的值:) – Martin 2011-04-29 20:10:54