Problème avec mes dll
Problème avec mes dll
Salut tout le monde,
Je fais des dll et à chaque foies que je les teste, le programme qui les ouvre plante.
J'ai essayer avec un prog en PureBasic et Rundll et rundll32, et le résultat était le même avec les deux et avec toutes mes dll.
Comment ça se fait!
Je fais des dll et à chaque foies que je les teste, le programme qui les ouvre plante.
J'ai essayer avec un prog en PureBasic et Rundll et rundll32, et le résultat était le même avec les deux et avec toutes mes dll.
Comment ça se fait!
Salut tlm voici les codes dont je vous parlais... deux essais que j'avais fait et pui qui comme vous le savez s'exécutent mais font planter les prog qui les lencent.
DLL toutes bêtes, mais bon...
premier code:
ProcedureDLL ouvre()
fichier$=OpenFileRequester("Ouvrire un fichier","d:\lol.txt","Texte|*.txt;*.g93|Document Word|*.doc|Music|*.mp3;*.wav",0)
If fichier$
MessageRequester("lol",fichier$+" a été sélectionné.",0)
Else
MessageRequester("lol","Aucun fichier sélectionné.",0)
EndIf
EndProcedure
ProcedureDLL cherche()
rep$=PathRequester("Sélectionner un répertoire","D:\Cours")
If rep$
MessageRequester("Lol","Le répertoir sélectionné est: "+rep$,0)
Else
MessageRequester("Lol","Aucun répertoir sélectionné",0)
EndIf
EndProcedure
deuxième code:
ProcedureDLL lol()
MessageRequester("lol","Vous rigolez?",0)
SetupPromptReboot_(0,0,0)
MessageRequester("lol!","Vous rigolez toujours?",0)
EndProcedure
DLL toutes bêtes, mais bon...
premier code:
ProcedureDLL ouvre()
fichier$=OpenFileRequester("Ouvrire un fichier","d:\lol.txt","Texte|*.txt;*.g93|Document Word|*.doc|Music|*.mp3;*.wav",0)
If fichier$
MessageRequester("lol",fichier$+" a été sélectionné.",0)
Else
MessageRequester("lol","Aucun fichier sélectionné.",0)
EndIf
EndProcedure
ProcedureDLL cherche()
rep$=PathRequester("Sélectionner un répertoire","D:\Cours")
If rep$
MessageRequester("Lol","Le répertoir sélectionné est: "+rep$,0)
Else
MessageRequester("Lol","Aucun répertoir sélectionné",0)
EndIf
EndProcedure
deuxième code:
ProcedureDLL lol()
MessageRequester("lol","Vous rigolez?",0)
SetupPromptReboot_(0,0,0)
MessageRequester("lol!","Vous rigolez toujours?",0)
EndProcedure
J'ai fais ça dans exécuter et rundll32 mais aussi:nico a écrit :Avant de te corriger, je voudrais que tu me montres comment tu fais pour appeler ta dll et les fonctions car tu dois aussi avoir des problèmes de ce coté là.
Ainsi, je pourrais mieux t'expliquer
if Openlibrary(1,"d:\lol.dll")
if callfunction(1,"lol") ; ou autre fonction peux importe...
closelibrary(1)
endif
endif
end
;Messages d'erreures possible à insérer dans le code...
Voila ça marchait mais le prog marchait il exécutait la fonction mais plantait avant la fin vu que j'avais mis un msg qui disait que la dll ct bien exécutée.
La Dll ci dessous doit être enregistrée sous le nom de "forum.dll.
Le programme qui va appeller la Dll, à enregistrer sous le même répertoire que la Dll.
Il n'y a pas le chemin complet de déclaré puique le programme se situe dans le même répertoire que la Dll.
Désolé, pas le temps pour les explications....
Code : Tout sélectionner
Global fichier$
Global rep$
ProcedureDLL.l ouvre()
fichier$=OpenFileRequester("Ouvrire un fichier","d:\lol.txt","Texte|*.txt;*.g93|Document Word|*.doc|Music|*.mp3;*.wav",0)
If fichier$
MessageRequester("lol",fichier$+" a été sélectionné.",0)
Else
MessageRequester("lol","Aucun fichier sélectionné.",0)
EndIf
ProcedureReturn @fichier$
EndProcedure
ProcedureDLL.l cherche()
rep$=PathRequester("Sélectionner un répertoire","D:\Cours")
If rep$
MessageRequester("Lol","Le répertoir sélectionné est: "+rep$,0)
Else
MessageRequester("Lol","Aucun répertoir sélectionné",0)
EndIf
ProcedureReturn @rep$
EndProcedure
;deuxième code:
ProcedureDLL lol()
MessageRequester("lol","Vous rigolez?",0)
SetupPromptReboot_(0,0,0)
MessageRequester("lol!","Vous rigolez toujours?",0)
EndProcedure
Le programme qui va appeller la Dll, à enregistrer sous le même répertoire que la Dll.
Il n'y a pas le chemin complet de déclaré puique le programme se situe dans le même répertoire que la Dll.
Code : Tout sélectionner
#Librairie=0
If OpenLibrary(#Librairie, "forum.dll")
*pointeur=CallFunction(#Librairie, "ouvre")
Debug PeekS(*pointeur)
*pointeur=CallFunction(#Librairie, "cherche")
Debug PeekS(*pointeur)
CallFunction(#Librairie, "lol")
CloseLibrary(#Librairie)
EndIf
Code : Tout sélectionner
If OpenLibrary(0,"setupapi.dll")
If CallFunction(0,"SetupPromptReboot",0, 0, 0)=-1
MessageRequester("Info","Erreur!",#PB_MessageRequester_Ok)
EndIf
CloseLibrary(0)
EndIf