Page 1 sur 1

Autoscan d'une DLL [Résolu]

Publié : mer. 26/sept./2007 13:38
par Kwai chang caine
Bonjour à tous

Croyez vous qu'il soit possible qu'une DLL s'autoscan :roll:
C'est à dire qu'on lui demande ce qu'elle a dans le ventre et elle nous retourne touts ses petits enfants procedure dans un tableau puisqu'elle ne peut retourner qu'un resultat.

Merci
Bonne journée

Publié : mer. 26/sept./2007 13:55
par Patrick88
dans le temps ( window95/98 ) la fonction aperçu du menu contextuel permetait de lister les fonctions d'une dll

à moins que ce soit une dll écrite par toi et qui contient un code d'interrogation et si t'en est que ce soit possible , alors pourquoi pas...

pour les dll déja "toute faite" ???

pat

Publié : mer. 26/sept./2007 14:28
par Kwai chang caine
Je te remercie de ta reponse.
Comme tu me dit que c'est possible, J'ai cherché et je suis retombé sur un code de FLYPE et de LIONEL_OM et cpl.bator que j'ai bidouillés :

Code : Tout sélectionner

; Retour dans un tableau des fonction de la DLL appelée
; Codé par Kwai chang caine avec l'aide des codes de :
;  - Flype (Procedure atachprocess) Nom et chemin de la DLL
;  - Lionel_om (ExamineLibraryFunctions) Lister les fonctions de la DLL
;  - Cpl.bator ( ProcedureReturn Tab$()) Retour d'un tableau venant d'une procédure


; Partie à compiler en DLL : "c:\essai.dll"

ProcedureDLL AttachProcess(Instance) 

 Global Full_path.s 
 Full_path = Space(100) 
 GetModuleFileName_(Instance, @Full_path, 100) 
     
EndProcedure 

ProcedureDLL.l ListingFonctionsDll() 
 
 Global Dim Tab$(10) 
 OpenLibrary(1,Full_path) 
 ExamineLibraryFunctions(1)

 While NextLibraryFunction()
  i = i + 1
  Tab$(i) = LibraryFunctionName()
 Wend
 
 ProcedureReturn Tab$() 
 
EndProcedure

ProcedureDLL PremiereProcedureDll()

EndProcedure

ProcedureDLL DeuxiemeProcedureDll()

EndProcedure

Procedure TroisiemeProcedure()

EndProcedure

; Partie à compiler dans en exe ou bien démarrer de l'IDE

Dim tablo.s(5) 

If OpenLibrary(0, "c:\Essai.dll")
 
 AdresseTablo.l = CallFunction(0, "ListingFonctionsDll") 

 For element = 1 To 3 
  *Ptr = PeekL(AdresseTablo + (element * 4)) 
  Ligne$ = PeekS(*Ptr) 
  Debug Ligne$ 
 Next 

 CloseLibrary(0) 

EndIf
Y'a surement plus simple comme dab, si ça dit à quelqu'un de le simplifier :oops:

Encore merci de ton aide patrick88 :wink:

Publié : mer. 26/sept./2007 15:44
par Patrick88
euh ! :?

et pour les dll qui sont pas créer par toi , comment tu fais ?

penses tu qu'il soit possible de coller un exe "visualisateur" à la fin de la dll et un exe "choix" au début ?

genre : pas de paramétre la dll "fonctionne normalement"
un paramêtre ou renommer en exe , elle liste ces "procedure"

hein, dit , hein hein ? pas chiche !

pat

Publié : mer. 26/sept./2007 16:34
par Kwai chang caine
Po po po dit !!!!!!
Tu veux ma mort .

T'as vu le temps qu'il m'a fallu pour pondre un oeuf de caille, et toi tu me demande de faire l'autruche avec mon petit derriere tout neuf :lol:

Attend..... le debutant c'est toi ou c'est moi :D

Je sais meme pas comment elle fonctionne les DLL des autres :oops:
Comment tu veux que j'y insere quoi que ce soit sans y mettre le feu :cry:

Tu t'es trompé moi c'est Hong Kong Code à Chier, c'est à mon roi qui faut demander ça pas à son bouffon :D
Sincerement, si j'avais la moindre idée de comment "QuiFoFaire", comment que je me la "peterai" à afficher 3 pages de codes :D

Mais bon, au moins l'avantage de mon niveau, c'est que "normalement" on me demande rien à moi. :D

Ah si .......

+
+
+
+
+
+
+
+

Parfois, de me taire :D