La fonction Err affiche simplement en francais
le message d'erreur fournit par GetLastError après appel
d'une API.
Utile pour déboguer.
Source / Exemple :
.686
.model flat,stdcall
option casemap:none
includelib kernel32.lib
includelib user32.lib
ExitProcess PROTO :DWORD
FormatMessageA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
FormatMessage equ <FormatMessageA>
MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:DWORD
MessageBox equ <MessageBoxA>
LocalFree PROTO :DWORD
GetLastError PROTO
DrawTextA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
DrawText equ <DrawTextA>
.code
debut:
;appel non valide d'une api
push 0
push 0
push 0
push 0
push 0
call DrawText
;affichage du message d'erreur
call GetLastError
call Err
push 0
call ExitProcess
Err proc
;---------------------------------------
;affiche dans une MessageBox
;le message d'erreur en francais
;correspondant au retour de GetLastError
;---------------------------------------
LOCAL lpBuffer:dword
push eax ;eax contient le code retour de GetLastError
push 0 ;pas de liste d'arguments variables
push 0 ;taille mini du buffer
lea ebx,lpBuffer
push ebx ;buffer alloué par le système pour le message
push 1024 ;langue par défault utilise pa os
push eax ;?
push 0 ;?
mov edx,256 ;utilisation d'un buffer
or edx,4096 ;+ message produit par API
push edx
call FormatMessage
push 0
push 0
push dword ptr lpBuffer
push 0
call MessageBox
push dword ptr lpBuffer
call LocalFree
fin:
pop eax
ret
Err endp
end debut
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.