begin process at 2012 05 25 04:22:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Divers

 > 

Débutant(e)

 > 

GetProcAddress d'une procédure dans une Dll


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

GetProcAddress d'une procédure dans une Dll

vendredi 2 juillet 2010 à 12:32:52 | GetProcAddress d'une procédure dans une Dll

biloute54

bonjour,

j'essaie d'appeler une procédure dans une DLL,
mais GetProcAddress me retourne 0

programme principal :
Code :
dll	DWORD ?
fnct	DWORD ?
Window1Procedure Proc Private hWnd:HWND, uMsg:ULONG, wParam:WPARAM, lParam:LPARAM
	.If uMsg == WM_CREATE
		Invoke LoadLibrary, TextAddr("nom de la dll.dll")
		Mov dll, Eax
		Invoke GetProcAddress, hDll, TextAddr("dllActif")
		Mov fnct, Eax
	...


la dll :
Code :
...
hInst	HINSTANCE	?
DllEntryPoint Proc Private hInstance:HINSTANCE, dwReason:DWord, lpvReserved:LPVOID
	.If dwReason == DLL_PROCESS_ATTACH
		Mov Eax, hInstance
		Mov hInst, Eax
		Invoke SetWindowsHookEx, WH_KEYBOARD, Addr HookProc, hInst, 0
		...
	Return True
DllEntryPoint EndP
HookProc Proc Private nCode:DWord, wParam:DWord, lParam:DWord
	"traitements" : qui fonctionnent 
	Ret
HookProc EndP
dllActif Proc
	"traitements"...
	Ret
dllActif EndP
End DllEntryPoint


j'ai oublié quelque chose, mais quoi ?

j'utilise "Easy Code Masm", qui me plait
beaucoup, mais ce doit être sans importance.

merci d'avance.
vendredi 2 juillet 2010 à 20:23:47 | Re : GetProcAddress d'une procédure dans une Dll

ghuysmans99

Membre Club
Réponse acceptée !
Ceci devrait fonctionner ...
Code :
hDll	DWORD	0
Fnct	DWORD	0

Window1Procedure Proc Private hWnd:HWND, uMsg:ULONG, wParam:WPARAM, lParam:LPARAM
	.If uMsg == WM_CREATE
		Invoke LoadLibrary, TextAddr("nom de la dll.dll")
		Mov dword ptr [hDll], eax
		Invoke GetProcAddress, dword ptr [hDll], TextAddr("dllActif")
		Mov dword ptr [Fnct], eax
	...


VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
samedi 3 juillet 2010 à 08:37:07 | Re : GetProcAddress d'une procédure dans une Dll

biloute54

merci de ton intervention, mais non.
c'est bien EAX qui est = 0
et d'ailleurs
Invoke LoadLibrary, TextAddr("nom de la dll.dll")
Mov dll, Eax
ça, ça fonctionne sans souci.
samedi 3 juillet 2010 à 08:42:54 | Re : GetProcAddress d'une procédure dans une Dll

biloute54

avec la "syntaxe" proposée, l'appel
à la DLL ne fonctionne plus ;o(
samedi 3 juillet 2010 à 08:46:04 | Re : GetProcAddress d'une procédure dans une Dll

biloute54

désolé, ne pas tenir compte de ce dernier message,
l'appel à la dll fonctionne, mais pas l'appel
à la procédure car
Invoke GetProcAddress, DWord Ptr [hDll], TextAddr("dllActif")
retourne 0
dimanche 4 juillet 2010 à 08:36:44 | Re : GetProcAddress d'une procédure dans une Dll

patatalo

Membre Club Administrateur CodeS-SourceS
salut,


ta fonction est elle déclarée en export de ta dll.

objdump est ton ami.


@++
dimanche 4 juillet 2010 à 11:02:32 | Re : GetProcAddress d'une procédure dans une Dll

biloute54

>>ta fonction est elle déclarée en export de ta dll.
euh ... non, je ne pense pas (?)
on fait cela comment ?
il y a l'extrait de ce que je fais dans la dll :
Code :
...
hInst	HINSTANCE	?
DllEntryPoint Proc Private hInstance:HINSTANCE, dwReason:DWord, lpvReserved:LPVOID
	.If dwReason == DLL_PROCESS_ATTACH
		Mov Eax, hInstance
		Mov hInst, Eax
		Invoke SetWindowsHookEx, WH_KEYBOARD, Addr HookProc, hInst, 0
		...
	Return True
DllEntryPoint EndP
HookProc Proc Private nCode:DWord, wParam:DWord, lParam:DWord
	"traitements" : qui fonctionnent 
	Ret
HookProc EndP
dllActif Proc
	"traitements"...
	Ret
dllActif EndP
End DllEntryPoint

dimanche 4 juillet 2010 à 13:27:27 | Re : GetProcAddress d'une procédure dans une Dll

biloute54

si je fais :
Code :
...
DllEntryPoint Proc Private hInstance:HINSTANCE, dwReason:DWord, lpvReserved:LPVOID
...
dllActif Proc Export
	...
	Ret
dllActif EndP
End DllEntryPoint
===> erreur de compil


Compiling resources...
Assembling: Module1
Module1.asm(29) : error A2111: conflicting parameter definition


si je fais :
Code ActionScript :
...
DllEntryPoint Proc Private hInstance:HINSTANCE, dwReason:DWord, lpvReserved:LPVOID
...
End DllEntryPoint
dllActif Proc Export
	...
	Ret
dllActif EndP

pas d'erreur de compil,
mais Invoke GetProcAddress, DWord Ptr [hDll], TextAddr("dllActif")
retourne encore 0

désolé de mes temps de réponse, mais
j'ai quelques autres préoccupations

merci de vos aides.
dimanche 4 juillet 2010 à 19:20:00 | Re : GetProcAddress d'une procédure dans une Dll

patatalo

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
re,

Comment creer un library


@++
lundi 5 juillet 2010 à 08:58:10 | Re : GetProcAddress d'une procédure dans une Dll

biloute54

je récupère tout cela, je lis, je tente de comprendre et de mettre en oeuvre... et je reviens si je n'y parviens pas ;o)
merci patatalo.

1 2

Cette discussion est classée dans : code, dll, dword, proc, getprocaddress


Répondre à ce message

Sujets en rapport avec ce message

Mov mem immediat, immediat [ par Erkson ] Bonjour à tous.J'utilise un Pentium II PC, Windows ME, et un debuggeur qui a un assembleur intégré. Lorsque je veux modifier le programme que je debug Cycles de mov [ par vecchio56 ] Je me demandais si les instructions suivantes étaient équivalentes en termes de performances, ou si certaines d'entres elles demandaient plus de cycle [Nasm - Alink - WIn32] Probleme avec SetWindowsHookEx [ par jean84 ] Salut à tous ;)Je me permet de poser une chtite question car après avoir passé du temps à chercher la réponse à mon problème, bah j'ai toujours pas tr DLL et Code Segment [ par Taron31 ] Bonjour, j'ai une question peut-être un peu étrange : en effet, je voudrais savoir si tout le code d'une DLL (par exemple NtDll.dll) est situé dans un Boot et heure [ par henri12 ] je fais un essai de changement de l heure avec l interruption 21h sous le boot l heure n est pas changerpourquoi.286C   ;Code de bootsecteur permettan ebx et interface C/C++ [ par kaervas ] Bonjour, pourquoi ne pas modifier la valeur du registre %ebx dans une interface en C/C++? En effet, j'ai code plusieurs fonctions dans des .o, que j'u Appel DLL [ par Arnaud16022 ] BonjourJ'ai quelques soucis pour appeler des fonctions de l'API win32 ( ou n'importe quelle DLL, à vrai dire)Google me fait défaut sur le coup, et asm Peut-on générer du code pour 68hc16 avec Visual Studio... [ par search47 ] J'utilise Visual Studio .NET (C#)Est-il possible d'utiliser ce même éditeur pour compiler du C pour un 68hc16 (ou autre) et générer le fichier binaire [nasm] ligne de commande [ par Kevin68 ] Bonjour :),Je suis débutant en assembleur, j'utilise nasm sous linux.J'ai cherché partout un exemple de code source qui me permettrait de récupérer le afficher plusieur mot [ par hackeur13 ] bonjour a tous et a toute,je suis entrin d'essayer de programmer en asm avec MASM etj'aimerais savoir comment faire affichier a chaque fois que je cli


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 4,602 sec (3)

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