Pb de compilation ressource [Résolu]

cs_AlexMAN 1537 Messages postés samedi 21 décembre 2002Date d'inscription 24 mai 2009 Dernière intervention - 14 juil. 2004 à 23:29 - Dernière réponse : TRAX44 93 Messages postés mercredi 18 septembre 2002Date d'inscription 20 juillet 2006 Dernière intervention
- 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
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
cs_aardman 1905 Messages postés mercredi 22 janvier 2003Date d'inscription 17 septembre 2012 Dernière intervention - 15 juil. 2004 à 02:31
3
Merci
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

Merci cs_aardman 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_aardman
cs_AlexMAN 1537 Messages postés samedi 21 décembre 2002Date d'inscription 24 mai 2009 Dernière intervention - 15 juil. 2004 à 02:41
0
Merci
Merci aardman, gt tt de mm arrivé a trouver (au bout de 2heures...)

++

Bonne nuit (allez au dodo !)

ALhexman
Commenter la réponse de cs_AlexMAN
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 15 juil. 2004 à 21:44
0
Merci
Ces invoke, .IF et autre .ENDIF dénaturent totalement l'asm, ont dirait presque du C...
Commenter la réponse de vecchio56
TRAX44 93 Messages postés mercredi 18 septembre 2002Date d'inscription 20 juillet 2006 Dernière intervention - 11 août 2004 à 12:40
0
Merci
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
Commenter la réponse de TRAX44

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.