DLL Importer

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

DLL Importer

Message par LOULOU25 »

J'ai une librairie Windows .lib ainsi qu''un fichier d'entete .H , quelqu'un saurait-il comment faire pour en faire une libaririe Pure Basic. Merci par avance
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Pour le .h c'est pas dll importer mais header converter qu'il faut utiliser
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

Message par LOULOU25 »

Ok Oliv ça je le savais, ce que je ne sais pas faire c'est coment procéder dans le détail pour faire une librairie purebasic. Si tu pouvais me renseigner
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

DLL importer n'es pas pour les librairies mais pour les DLL
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

Message par LOULOU25 »

J'ai vu mais je ne sais pas comment m'en servir pourrais tu m'expliquer en gros svp
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Là non désolé, j'ai essayé de m'en servir une fois et il m'a semblé que le logiciel avait un problème au niveau de la gestion des répertoires. J'ai finalement réussi à m'en servir, mais je ne me rapelle plus exactement comment :oops:
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

DllImporter permet d'utiliser les fonctions des dll externes comme si c'était des commandes standard de PureBasic, en utilisant un trait de soulignement. CreateWindowEx_(), SendMessage_(), etc...

Il faut commencer par créer un fichier texte avec l'extension .pbl, contenant le nom de la dll, le nom de chaques fonctions, et le nombre de paramètres pour chaque fonction.

MaDll.dll
MaFonction1 1 ; <----- 1 seul paramètre
MaFonction2 6 ; <------6 paramètres
MaFonction3 2 ; <------2 paramètres
etc...

Pour mettre des commentaires, tu utilises un ';'

Ensuite, tu lances "DLL Importer.exe", dans le champ du haut, tu sélectionnes le dossier "\PureBasic\PureLibraries\", dans le champ du bas, tu sélectionnes le dossier de "PureBasic", et tu cliques sur "Start".

Quand le programme te le demande, tu indiques ou se trouve le fichier .pbl que tu as créé, et le prog te crée 3 fichiers.

1 fichier .lib dans le dossier \PureBasic\PureLibraries\Windows\Libraries
1 fichier sans extension dans \PureBasic\PureLibraries\Windows
1 dans un nouveau dossier "Export", dans \PureBasic\PureLibraries.

Ensuite, tu redémarre le compilateur, et tu utilises les fonctions de ta dll en les appelant directement avec un _

Fonction1_(MonParamètre)
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

Message par LOULOU25 »

Merci Chris,
J'ais procédé au manip et ensuite en lancant l'applic j'ais le message suivant :
Cette application n'a pu démarrer car Autitx3.dll est introuvable. la réinstallatation de cette application peut corrgier ce problême
Est-ce à dire qu'il faut que j'enregistre Autoitx3.dll ?
Ne maitrisant pas du tout la chose je suis certain d'avoiur sauter une étape.
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message par filperj »

Il faut que la DLL se trouve dans le même dossier que l'exe, donc dans le dossier "compilers" de PB puisque c'est là que l'exe temporaire est créé quand on appuie sur F5.
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
LOULOU25
Messages : 150
Inscription : mer. 19/mai/2004 20:40

Message par LOULOU25 »

filperj a écrit :Il faut que la DLL se trouve dans le même dossier que l'exe, donc dans le dossier "compilers" de PB puisque c'est là que l'exe temporaire est créé quand on appuie sur F5.
Une fois compilé l'application a t-on toujours besoin de la DLL ou non ?
Message en compilant en exe
Le point d'entrée de procédure WinGetTitle est introuvable dans la bibliothéque de liaisons dynamique AutoItx3.dll
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message par filperj »

Oui, l'exe compilé a toujours besoin de la DLL.
Sinon, ton message d'erreur veut surement dire que le compilo ne trouve pas dans la DLL une des fonctions que tu as décrite dans le .pbl..
Vérifie bien l'orthographe(y compris la casse), sinon je sais pas...
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
Répondre