Pb de compilation ressource [Résolu]

Signaler
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
-
Messages postés
93
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
20 juillet 2006
-
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

Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
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
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
Merci aardman, gt tt de mm arrivé a trouver (au bout de 2heures...)

++

Bonne nuit (allez au dodo !)

ALhexman
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Ces invoke, .IF et autre .ENDIF dénaturent totalement l'asm, ont dirait presque du C...
Messages postés
93
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
20 juillet 2006

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