begin process at 2010 09 06 07:14:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Newbii

 > 

MASM - Petite question DlgProc proc


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

MASM - Petite question DlgProc proc

jeudi 24 novembre 2005 à 20:28:21 | MASM - Petite question DlgProc proc

n_o_u_n_o_u

Bonjour,

je continue ma découverte de MASM et j'ai encore une question...

Voici un extrait du code que j'ai placé dan DlgProc proc :
...
   .if dx==BN_CLICKED
    invoke GetDlgItemText,hWin, IDC_EDT1, ADDR tempo, 512
       .if ax==IDC_BTN1
           invoke SetDlgItemText,hWin, IDC_EDT2, ADDR tempo
       .elseif ax==IDC_BTN2
           invoke MessageBox,hWin, ADDR tempo, ADDR tempo, MB_OK
       .endif
   .endif
...

Cela ne fonctionne pas, alors que le code ci-dessous fonctionne :
...
   .if dx==BN_CLICKED
       .if ax==IDC_BTN1
           invoke GetDlgItemText,hWin, IDC_EDT1, ADDR tempo, 512
           invoke SetDlgItemText,hWin, IDC_EDT2, ADDR tempo
       .elseif ax==IDC_BTN2
           invoke GetDlgItemText,hWin, IDC_EDT1, ADDR tempo, 512
           invoke MessageBox,hWin, ADDR tempo, ADDR tempo, MB_OK
       .endif
   .endif
...

Je ne comprends pas du tout pourquoi le premier code ne fonctionne pas. Il semble pourtant correct, non ?

jeudi 24 novembre 2005 à 20:41:46 | Re : MASM - Petite question DlgProc proc

BruNews

Administrateur CodeS-SourceS
BN_CLICKED vaut 0
donc en asm test de nullité s'écrit
test dx, dx
je VautZero

Comment se fait-il que tu travailles sur des registres 16 bits dans un prog Win ???
Depuis le pentium tout accès 16 bits souffre de cycle de pénalité, registres 32 et 8 non alors évite ce code.

Comme tu as l'air de commencer, évite aussi ce sabir, pas ainsi que tu connaitras l'asm. Ne pas oublier que l'asm est employé pour optimisation maxi et pas avec ça que tu l'auras, un compilo C moderne te battra sans problème à tout coup. Si tu veux te mettre à l'asm alors écris de l'asm, c'est tout à fait possible sur MASM32.

ciao...
[ Lien ]
BruNews, MVP VC++
jeudi 24 novembre 2005 à 22:04:14 | Re : MASM - Petite question DlgProc proc

patatalo

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
salut, dans le premier cas, invoke GetDlgItemText,hWin, IDC_EDT1, ADDR tempo, 512 ecrase la valeur de eax pour retourner la taille du texte copié et donc eax n'as pas du tout la meme valeur dans le cas 1 et dans le cas 2. dans le cas 1, le test devrait etre: invoke GetDlgItemText,hWin, IDC_EDT1, ADDR tempo, 512 .if eax==512 invoke MessageBox,0,"Waooo, le buffer est plein !!!","infos",MB_OK .endif @++
jeudi 24 novembre 2005 à 23:11:08 | Re : MASM - Petite question DlgProc proc

n_o_u_n_o_u

Merci pour vos réponses.


Cette discussion est classée dans : tempo, idc, addr, invoke, hwin


Répondre à ce message

Sujets en rapport avec ce message

Modif zone de saisie [ par noel70 ] Bonjonr a tous.Je vous explique ce que je voudrais faire.Je voudrais changer les caracteristiques du zones de saisies par l'intermédiaire d'un bouton. Recherche de fichier recursif [ par maximus4 ] Bonjour, j'ai la procédure suivante pour la recherche récursive, le résultat est stocké dans un fichier texte. [code=autre]invoke CreateFile,offset fi GetDlgItemText et SetDlgItemText [ par swadfish ] Bonjour [b]puis je vous solliciter votre aide en ce qui concerne l'affichage d'un message par la fonction "SetDlgItemText" [b]invoke GetDlgItemText, out bmp [ par vincent2795 ] Bonjour, dans ma source, j' essaye de faire un screenshot, et de le nommer pas la date et l' heure ou il es pris. mon problème: si le nom du fichier e comment utiliser une chaine de caractères stockée dans un fichier ressource ? [ par parki ] Bonjour,je n'arrive pas à utiliser une chaine de caractère stockée dans un fichier ressources. (je sais qu'on peut s'en passer mais j'aime bien compre EasyMasm + ComboBox [ par Bul3 ] Bonjour à toutes et à tous, je m'essaye à EasyMasm ( je suppose que vous connaissez ce "[i]Visual Assembleur[/i]" ) je bute depuis 3 jours sur une b [^^!2] Tempo et PIC 16F628A [ par nono7380 ] Bonjour, je cherche a faire une tempo de +- 0,5 sec. Comment dois-je faire? J'ai fait ceci avec le cours de bigonoff mais çà marche po[^^sad1]. ;*** COULEUR DE TEXTE LORS DU PASSAGE DE LA SOURIS [ par knetus12 ] salut a tousj'ai un probleme pour faire changer la couleur d'un texte quand la souris passe dessus ca na marche pas pourquoi ??? .ELSEIF uMsg == call ou invoke? [ par vecchio56 ] Je commence en asm et ja me rend compte qu'il y a 2 facons d'appeler une fonction: call et invokeQuelle différence? help me [ par theyoupione ] j'ai écri un ptit prog dont voici un extrait permettant d'envoyer un octet vers liaison série mais j'ai un pb lors de la compilation avec mplabl'erreu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,764 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales