|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Inscription : janvier 2008 Messages : 384 ![]() |
Bonjour, j'essaye en vain de faire un petit call de GetCurrentDirectory et d'afficher la valeur mais comme je debute en assembleur je dois surement faire une erreur grossiere...
Voici le code: Code :
Merci de votre aide. |
||
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() être humain Inscription : décembre 2007 Messages : 465 ![]() |
call [GetCurrentDirectory] car on appele une fonction via un pointeur en mémoire.
l'equivalent en invoke serait comme ça: invoke GetCurrentDirectory,2048,esp |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : juin 2002 Messages : 93 ![]() |
Bonjour.
La syntaxe " call GetCurrentDirectory " est tout à fait correcte avec MASM ou TASM. L'erreur ne vient pas de là, mais du mélange entre une fonction qui retourne une chaîne ANSI et une fonction qui affiche une chaîne UNICODE. Dans le fichier Kernel32.inc, on trouve " GetCurrentDirectory equ <GetCurrentDirectoryA> ". Donc " call GetCurrentDirectory " équivaut à " call GetCurrentDirectoryA ". Pour corriger le programme, il suffit de remplacer le W à la fin de MessageBoxW par un A. ( le A signifie ANSI, le W signifie UNICODE ). On peut aussi écrire " invoke MessageBox, ... " puisque le fichier User32.inc contient " MessageBox equ <MessageBoxA> ". |
|
|
20
|
Copyright © 2000-2012 - www.developpez.com