Accueil > Forum > > > > Problème de création de Dialog
Problème de création de Dialog
mardi 16 mars 2004 à 20:31:45 |
Problème de création de Dialog

bni
|
Bonjour, Suivant un tutoriel disponible sur le net, j'ai essayé de creer une boite de dialogue. Le seul problème, c'est qu'il n'y a qu'une console qui est lancée, mais pas de dialogue.. Voici la source (J'utilises TASM 5.0r) : .386 .model flat, stdcall
include windows.inc
extrn GetModuleHandleA : PROC extrn RegisterClassExA : PROC extrn CreateWindowExA : PROC extrn LoadIconA : PROC extrn LoadCursorA : PROC extrn ShowWindow : PROC extrn UpdateWindow : PROC extrn PostQuitMessage : PROC extrn GetMessageA : PROC extrn TranslateMessage : PROC extrn DispatchMessageA : PROC extrn DefWindowProcA : PROC extrn ExitProcess : PROC
.data
msg MSGSTRUCT <?> wc WNDCLASS <?>
hMain dd 0 hInst dd 0
ProgName db 'Dialog..',0 MainClass db 'd0',0
.code
start: call GetModuleHandleA, 0 ; Get the Instance handle(module handle) mov hInst, eax ; save here
mov [wc.clsStyle], CS_HREDRAW + CS_VREDRAW mov [wc.clsLpfnWndProc], offset WndProc mov [wc.clsCbClsExtra], 0 mov [wc.clsCbWndExtra], 0
mov eax, [hInst] mov dword ptr [wc.clsHInstance], eax
call LoadIconA, 0, IDI_APPLICATION ; Load the icon for the application mov dword ptr [wc.clsHIcon], eax ; save here
call LoadCursorA, 0, IDC_ARROW ; Load the cursor for the application mov dword ptr [wc.clsHCursor], eax ; save here
mov [wc.clsHbrBackground], COLOR_WINDOW + 1 mov dword ptr [wc.clsLpszMenuName], 0 mov dword ptr [wc.clsLpszClassName], offset MainClass push offset wc call RegisterClassExA call CreateWindowExA, 0, offset MainClass, offset ProgName, WS_VISIBLE OR WS_CAPTION OR WS_SYSMENU OR WS_THICKFRAME, 150,\ ; X position 150,\ ; Y position 500,\ ; width of the window 300,\ ; height of the window 0,\ ; handle to parent's window if exists 0,\ ; handle to the window's menu hInst,\ ; the instance handle 0 ; lparam mov hMain, eax ; save handle of window call ShowWindow, hMain, SW_SHOWNORMAL call UpdateWindow, hMain msg_loop: call GetMessageA, offset msg, 0, 0, 0 cmp ax, 0 je end_loop call TranslateMessage, offset msg call DispatchMessageA, offset msg jmp msg_loop end_loop: call ExitProcess, 0
WndProc proc Hwnd:DWORD, wmsg:DWORD, wparam:DWORD, lparam:DWORD movzx eax, WORD PTR wmsg .if eax == WM_DESTROY jmp wmdestroy .else call DefWindowProcA, Hwnd, wmsg, wparam, lparam jmp @@End .endif xor eax, eax @@End: ret wmdestroy: call PostQuitMessage, 0 xor eax, eax ret WndProc endp public WndProc
end start
|
Merci d'avance pour votre aide. (Désolé si le code est trop long)
|
|
mardi 16 mars 2004 à 20:39:27 |
Re : Problème de création de Dialog

BruNews
|
Regarde la doc du linker tasm que je ne connais pas. Avec masm32 je mets: ... ... Link.exe /nologo /SUBSYSTEM:WINDOWS.....
il y a surement un truc /SUBSYSTEM:WINDOWS ou de ce genre sur tasm.
ciao... BruNews, Admin CS, MVP Visual C++
|
|
mardi 16 mars 2004 à 20:48:48 |
Re : Problème de création de Dialog

bni
|
Voici le fichier _combil.bat qui reprend les commandes de compilation (%1 = nom du fichier à titre informatif) : tasm32 /ml /iE:\tasm\INCLUDE %1 tlink32 -x /Tpe /c %1,%1,, import32.lib,,
|
Normalement, le lien devrait être correct.. Et aucunes erreurs ou aucuns avertissement n'est signalé !
|
|
mardi 16 mars 2004 à 20:52:52 |
Re : Problème de création de Dialog

BruNews
|
http://www.movsd.com/ tu y trouveras MAM32, au moins il est fourni avec tout ce qu'il faut.
ciao... BruNews, Admin CS, MVP Visual C++
|
|
mardi 16 mars 2004 à 21:12:24 |
Re : Problème de création de Dialog

bni
|
Avant de me tourner vers un autre assembleur, je voulais spécifier que je souhaites apprendre l'ASM le plus basique possible.. C'est à dire, sans simplification dû au compilateur.
Je me poses déjà la question de savoir si les instructions tel que .if ou .else (dans TASM en tout cas) font bien parties des bases de l'ASM..
|
|
mardi 16 mars 2004 à 21:41:30 |
Re : Problème de création de Dialog

BruNews
|
Pas besoin d'employer aucun sabir specifique et reconnu par tel assembleur. Je deconseille d'ailleurs totalement. On ecrit un ASM conforme aux specs Intel dans MASM32 comme on peut employer le sabir si on se fout de toute optimisation. Tu peux aller tranquille sur MASM32, c'est impec. Tu mets cela en haut des fichiers: .586 ; ou autre mais va bien ainsi .model flat, stdcall option casemap :none option prologue:none option epilogue:none Et tu es certain qu'il n'insere rien a l'insu de ton plein gre.
ciao... BruNews, Admin CS, MVP Visual C++
|
|
mardi 16 mars 2004 à 21:44:26 |
Re : Problème de création de Dialog

bni
|
Merci pour ces informations. Je vais donc tester MASM32 et décider quel assembleur je choisirais pour le futur.. Il est vrai que je vois beaucoup de monde utilisé MASM32.. à raison peut-être ;)
|
|
Cette discussion est classée dans : mov, wc, call, proc, extrn
Répondre à ce message
Sujets en rapport avec ce message
Ancien code - CreateWindowEx ne fonctionne pas [ par TehWan ]
Je ne comprends vraiment pas pourquoi CreateWindowEx ne fonctionne pas. Je code en ancien code avec MASM32. J'ai même essayé la nouvelle syntaxe (invo
prob de gestion de souris [débutant] [ par hagakure ]
bonjour a vous tousvoila je suis débutant en asm, et je doi coder un jeu de combat naval, dont voici les règles :-le champ de mouillage est de 10 sur
HELP ! :'( [ par TheHacker ]
Salut j'ai un probleme: voici mon code, il fonctionne correctement, activer le programme vous verres qu'a la fin i laffiche un MessageBox avec marqué
les interruptions :( [ par yafuka ]
Salut tt le monde..J'ai un petit probleme avec les interruptions. J'explique en quelques mots ce que j'essai de faire :J'aimerai tt simplement decreme
une librairie [ par rhumsek ]
slt mon prog contient une erreur d'après ma compilationje ne la voie pas pouvez vous m'aidé??TITLE Test de la librairieINCLUDE Irvine32.libCR=0DhLF=0A
mon programme bloque [ par rhumsek ]
slt j'ai améliore mon programme mais il provoque une erreure lorsdu calcul de la somme des entiers saisi (sommeentier)POURTANT il exécute bien les de
Une mémoire "read" [ par msteve ]
Bonsoir, Je suis débutant et j'ai recopié un programme test. Je parviens à l'assembler, puis à créer un .exe ; quend je lance l'exe j'obtiens la boîte
TSR & Détournement d'interrupt(ion) [ par ghuysmans99 ]
bonjour à tous.j'ai fait un petit prog en asm 32bits pour dos mais il ne fonctionne pas ... reste à savoir pourquoi !!pourriez-vous m'aider ??;Change
Probleme avec la pile et call [ par Mick7 ]
Salut,Voila j'ai un probleme d'adresse de pile quand je fais appele a call affichage: Main: mov ax, 324 mov bx, 10 Boucle: xor dx, dx
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|