Je compile mon projet et mis à part une API je recompile après correction et la tout est OK à la compil des 2 versions.
J’exécute en 64 bits et ça semble ok.
Mais en 32 bits, j'ai une erreur mais qui ne plante pas car je ferme si l'API échoue (ça plante si j'enlève le test). Je trace le code et je tombe sur l'API CreateWindowEx_() qui échoue.
Code : Tout sélectionner
;// création de la ReBar de la ToolBar générale
GLB_hHorizontal_Rebar = CreateWindowEx_(#WS_EX_TOOLWINDOW, "ReBarWindow32", #Null, #WS_CHILD | #WS_VISIBLE | #WS_CLIPSIBLINGS | #WS_CLIPCHILDREN | #RBS_VARHEIGHT | #CCS_NODIVIDER, 0, 0, 0, 0, hwndOwner, #Null, GLB_hInstance, #Null)
Un getlasterror_() et j'obtiens l'erreur 1400.
En traçant avec beaucoup de difficulté le code, hwndOwner n'a pas la bonne valeur.ERROR_INVALID_WINDOW_HANDLE
1400 (0x578)
Invalid window handle.
J'obtiens des "procedure stack has been corrupted" avec le purificateur mais le problème vient en amont mais où ?
L'écrasement a lieu je ne sais ou, la seule chose que j'ai modifié pour pouvoir compiler c'est ça :
Code : Tout sélectionner
If SetWindowTheme_(ttip, @"", @"") = #S_OK
Code : Tout sélectionner
If SetWindowTheme_(ttip, "", "") = #S_OK
On fait comment ?
pszSubAppName [in]
Type: LPCWSTR
Pointer to a string that contains the application name to use in place of the calling application's name. If this parameter is NULL, the calling application's name is used.
pszSubIdList [in]
Type: LPCWSTR
Pointer to a string that contains a semicolon-separated list of CLSID names to use in place of the actual list passed by the window's class. If this parameter is NULL, the ID list from the calling class is used.