Pb de compilation ressource

Résolu
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 - 14 juil. 2004 à 23:29
TRAX44 Messages postés 93 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 20 juillet 2006 - 11 août 2004 à 12:40
BruNews, ca fait une heure ke je texte ton bat, ca me compile bien mon exe, il est fonctionnel mais ne m'affiche pas ma dialog box ! Voila le code de la ressource et du ficheir asm :

ASM :

.386
.model flat, stdcall
option casemap:none

include \masm32\include\windows.inc
include \MASM32\INCLUDE\user32.inc
include \MASM32\INCLUDE\kernel32.inc
include \MASM32\INCLUDE\masm32.inc ;pour dwtoa

includelib \MASM32\LIB\kernel32.lib
includelib \MASM32\LIB\masm32.lib
includelib \MASM32\LIB\user32.lib

DlgProc PROTO :DWORD, :DWORD, :DWORD, :DWORD

.data
DlgName db "calc", 0

.data?
hInstance HINSTANCE ?

.const
IDD_CALC equ 101
IDBT_9 equ 1003
IDBT_8 equ 1002
IDBT_7 equ 1001
IDBT_6 equ 1006
IDBT_5 equ 1005
IDBT_4 equ 1004
IDBT_3 equ 1009
IDBT_2 equ 1008
IDBT_1 equ 1007
IDBT_0 equ 1010
IDBT_MULT equ 1011
IDBT_DIV equ 1014
IDBT_MOINS equ 1012
IDBT_PLUS equ 1013
IDST_RESULT equ 1015

.code
start:
invoke GetModuleHandle, NULL
mov hInstance,eax
invoke MessageBox, NULL, NULL, addr DlgName, MB_OK
invoke DialogBoxParam, hInstance, ADDR DlgName,NULL, addr DlgProc, NULL
invoke ExitProcess,eax

DlgProc proc hwnd:HWND, message:UINT, wParam:WPARAM, lParam:LPARAM
.IF message == WM_INITDIALOG
invoke MessageBox, NULL, addr DlgName, NULL, MB_OK
ret
.ENDIF
DlgProc endp

end start

RESSOURCE :

#include "\masm32\include\resource.h"

#define IDD_CALC 101
#define IDBT_7 1001
#define IDBT_8 1002
#define IDBT_9 1003
#define IDBT_4 1004
#define IDBT_5 1005
#define IDBT_6 1006
#define IDBT_1 1007
#define IDBT_2 1008
#define IDBT_3 1009
#define IDBT_0 1010
#define IDBT_MULT 1011
#define IDBT_MOINS 1012
#define IDBT_PLUS 1013
#define IDBT_DIV 1014
#define IDST_RESULT 1015

IDD_CALC DIALOGEX 0, 0, 171, 149
STYLE DS_SYSMODAL | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND |
DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
EXSTYLE WS_EX_APPWINDOW
CAPTION "Calculatrice"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
PUSHBUTTON "7",IDBT_7,35,41,26,23
PUSHBUTTON "8",IDBT_8,61,41,26,23
PUSHBUTTON "9",IDBT_9,87,41,26,23
PUSHBUTTON "4",IDBT_4,35,64,26,23
PUSHBUTTON "5",IDBT_5,61,64,26,23
PUSHBUTTON "6",IDBT_6,87,64,26,23
PUSHBUTTON "1",IDBT_1,35,87,26,23
PUSHBUTTON "2",IDBT_2,61,87,26,23
PUSHBUTTON "3",IDBT_3,87,87,26,23
PUSHBUTTON "0",IDBT_0,61,111,26,23
PUSHBUTTON "*",IDBT_MULT,128,87,26,23,0,WS_EX_CLIENTEDGE
PUSHBUTTON "-",IDBT_MOINS,128,64,26,23,0,WS_EX_CLIENTEDGE
PUSHBUTTON "+",IDBT_PLUS,128,41,26,23,0,WS_EX_CLIENTEDGE
PUSHBUTTON "/",IDBT_DIV,128,110,26,23,0,WS_EX_CLIENTEDGE
LTEXT "",IDST_RESULT,30,15,122,11,WS_BORDER
END

Voila, merci d'avance !

++

Alhexman

4 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
15 juil. 2004 à 02:31
Salut,
Le nom de la dialog box (DlgName) est "calc" alors que dans le fichier resource c'est IDD_CALC. Il faudrait changer la ligne:
calc DIALOGEX 0, 0, 171, 149

Ensuite, ta DlgProc doit retourner 0 sauf pour WM_INITDIALOG (dans ce cas, il faut retourner 1):

DlgProc proc hwnd:HWND, message:UINT, wParam:WPARAM, lParam:LPARAM
.IF message == WM_INITDIALOG
invoke MessageBox, NULL, addr DlgName, NULL, MB_OK
mov eax, 1
jmp finDlgProc
.ENDIF
mov eax, 0
finDlgProc:
ret
DlgProc endp
3
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
15 juil. 2004 à 02:41
Merci aardman, gt tt de mm arrivé a trouver (au bout de 2heures...)

++

Bonne nuit (allez au dodo !)

ALhexman
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
15 juil. 2004 à 21:44
Ces invoke, .IF et autre .ENDIF dénaturent totalement l'asm, ont dirait presque du C...
0
TRAX44 Messages postés 93 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 20 juillet 2006
11 août 2004 à 12:40
Avec le même titre, comment compiler avec des ressoruces sous nasm ?

P.S. Sa n'a pas de rapport avec le sujet mais je suis totalement en accord avec vecchio56 ; et c bien pour cela que je travail sous NASM

Merci
TRAX
0
Rejoignez-nous