[résolu] 5.40 b5 x86 et CreateWindowEx_()
Publié : sam. 19/sept./2015 15:25
J'ai installé les versions 32 et 64 bits de la 5.40
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.
Ca fonctionne bien en 32 bits avec la version 5.31, il n'y a que la version 32bit 5.40 b5 qui échoue.
Un getlasterror_() et j'obtiens l'erreur 1400.
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 : remplacé par
En passant Fred, les 2 "chaines" en paramètre peuvent valoir 0 (et pas une chaine vide).
On fait comment ?
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.