Domanda

Uso VS2010 e ho riscontrato il seguente problema:

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

Quando eseguo il debug di questo codice nella configurazione di debug, viene assegnato un valore corretto a "handle", ma quando eseguo il debug di questo codice nella build di rilascio "handle" rimane NULL.

getWindowHandle () è solo un semplice accesso:

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

"windowHandle" ha un valore diverso da NULL durante il debug nella build di debug / rilascio.

Grazie per l'aiuto.

È stato utile?

Soluzione

La build di rilascio include ottimizzazioni e talvolta il debugger potrebbe vedere il valore sbagliato per le variabili che vengono ottimizzate.Rende le build di rilascio più difficili da eseguire il debug, ma questo è esattamente il motivo per cui non vengono chiamate build di debug.:)

In breve, se devi solo eseguire il debug di una build di rilascio ma il tuo debugger ti sta giocando brutti scherzi, puoi sempre ricorrere al buon vecchio debug di printf .Aggiungi alcune funzioni di traccia, ad es.con OutputDebugString e vedere se handle rimane davvero NULL a quel punto.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top