bonjour, j'ai actuellement un programme 32 bit en c compilé sous visual studio 2010.Il fonctionne correctement, mais des que je le passe en 64 bits,il y a des bugs dans main.c quand on le debogue..Je crée une fenetre MDI avec la commande
mdicreate.lParam prend la valeur d'un pointeur, adresse que je retrouve changé en 64 bits dans la procedure de rappel
Code c : Sélectionner tout - Visualiser dans une fenêtre à part hWndChild =(HWND) SendMessage (frmMain->hWndClient, WM_MDICREATE,0L,(LPARAM)&mdicreate);
Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 LRESULT CALLBACK Main_MDI_Proc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) switch (message) { case WM_CREATE: if ( (mdic = (LPMDICREATESTRUCT)((LPCREATESTRUCT)lParam)->lpCreateParams) == NULL) return -1; frmMainMdi = (S_FRM*)mdic->lParam; if (frmMainMdi == NULL) return -1;
mdic->lParam en 32 bits est bien égal à mdicreate.lParam mais mdic->lParam prend une valeur differente si bien que j'ai un message violation d'access memoire ce qui est normal.
Pourquoi lors que je l'execute en 64 bits il me change la valeur ??
Merci de m'avoir lu.
Partager