Page 1 sur 1

DLL Importer

Publié : dim. 12/sept./2004 19:54
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

Publié : dim. 12/sept./2004 20:19
par Oliv
Pour le .h c'est pas dll importer mais header converter qu'il faut utiliser

Publié : lun. 13/sept./2004 6:27
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

Publié : lun. 13/sept./2004 6:32
par Oliv
DLL importer n'es pas pour les librairies mais pour les DLL

Publié : lun. 13/sept./2004 6:38
par LOULOU25
J'ai vu mais je ne sais pas comment m'en servir pourrais tu m'expliquer en gros svp

Publié : lun. 13/sept./2004 16:09
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:

Publié : lun. 13/sept./2004 18:59
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)

Publié : lun. 13/sept./2004 19:29
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.

Publié : lun. 13/sept./2004 19:48
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.

Publié : lun. 13/sept./2004 19:50
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

Publié : lun. 13/sept./2004 20:01
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...