1

Je voudrais juste avoir un avis pour valider sur ce que j'ai compris/
J'utilise DEV-CPP comme compilateur

1) ETAT des lieux
j'ai une DLL(exemple.dll) pas le source mais une définition de ces fonctions que j'ai obtenu avec divers outils ou desassemblage..
j'ai ecrit un fichier dllfct.h qui reprends par exemple la defintion d'une des fonctions :
__declspec(dllexport) int Open(char* c1);


2)J'utilise l'outil PEXPORT ou DLLTOOL pour générer un fic "exemple.def"
3)J'utilise l'outil DLLTOOL pour créer un fichier librairie "exemple.a"
(DLLTOOL fait partie du package DEV-CPP)

Question:

DLLTOOL me fournit bien une librairie au format compréhensible par DEV-CPP?

cette librairie (statique) ne contient que les pointeurs de fonction vers la DLL exemple.DLL?..

Lorsque j'ecrit mon prog principal et que veux utiliser la fonction Open
de la DLL comment se fait le lien avec la DLL dois-je charger dynamiquement la librairie exemple.dll?

Lors de la compilation sous DEV-CPP j'ai juste compilé mon prog principal avec le fic de declaration .h et inclus la lib objet "exemple.a" pour l'edition des liens..

Voilà je voudrais avoir confirmation de ce processus par rapport aux info que j'ai pu collecter sur le NET et les précisions à mes questions philosophiques!!

merci de votre aide wink




Frenchy
TSH Team
Développeur F18 jane's - vieux jeux

2

cette librairie (statique) ne contient que les pointeurs de fonction vers la DLL exemple.DLL?..

Oui, ça s'appelle une librairie d'importation.
Lorsque j'ecrit mon prog principal et que veux utiliser la fonction Open de la DLL comment se fait le lien avec la DLL dois-je charger dynamiquement la librairie exemple.dll?

Tu peux faire cela (LoadLibrary), mais ce n'est pas nécessaire, en utilisant la librairie d'importation, la DLL est chargée automatiquement au lancement de ton programme.
Lors de la compilation sous DEV-CPP j'ai juste compilé mon prog principal avec le fic de declaration .h et inclus la lib objet "exemple.a" pour l'edition des liens..

C'est la bonne méthode.

Sinon, les versions récentes de MinGW te permettent aussi de linker directement avec une DLL, sans passer par une librairie d'importation. (On passe la DLL dans la ligne de commande de GCC, et ça a le même effet que de linker la librarie d'importation.) Mais je ne sais pas si Dev-C++ gère ça.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

Merci de ta réponse claire et précise
Ok au moins j'ai pas d'erreur dans la méthode ..je vais ouvrir un autre post pour le problème de link que je n'arrive pas à résoudre..
Frenchy
TSH Team
Développeur F18 jane's - vieux jeux