Message getlasterror en francais

Contenu du snippet

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

A voir également

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.