LINK DEF/LIB

neophenix83 Messages postés 63 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 4 mai 2007 - 23 mars 2006 à 10:09
Tekila48 Messages postés 15 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 26 mars 2006 - 24 mars 2006 à 20:05
Bonjour,

Je decouvre un peu toutes les histoires de Link et tout ca sous VC++, et je voulais savoir.
Lorsque l'on crée un projet, on lui ajoute des fichiers C et H.
Si on a un fichier .DEF qui contient un certain nombre de references à des fonctions (fonction que j'utilisqe a priori dans mes fichier C).
Je dois inclure a mon projet le fichier DEF et une quelquonque librairie ? ou alors le fichier DEF peut s'utiliser tout seul.
C'est ca que je pige pas bien. Est ce que le DEF doit s'accompagner obligatoirement d'une DLL ou d'un LIB.

Merci beaucoup !

3 réponses

Tekila48 Messages postés 15 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 26 mars 2006
23 mars 2006 à 14:47
Les fichiers DEF servent à déclarer à ton compilateur quelles fonctions, variables ou classes doivent être exportées par ta DLL.
Je ne sais pas si un fichier DEF permet de charger une DLL.

Un LIB contient toutes les déclarations d'une DLL, et permet de l'importer simplement en incluant le LIB dans le dossier Ressources (et en copiant la DLL dans tes dossiers Debug et Release ou plus simplement System32).

Mais tout ce dont tu as besoin pour importer une DLL c'est de la DLL elle-même. Le Lib te permet seulement de ne pas avoir à importer chaque fonction dans ton code.
0
neophenix83 Messages postés 63 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 4 mai 2007
23 mars 2006 à 15:07
DOnc, dans mon projet, je dois bien importer le DLL ET le DEF pour que mon projet sache quels sont les fonctions qui doivent etre exportés..?
0
Tekila48 Messages postés 15 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 26 mars 2006
24 mars 2006 à 20:05
???
Je crois qu'il y a confusion. Si tu veux creer une DLL, tu exportes des fonctions, et il te faut un DEF pour indiquer quelles fonctions sont accessibles dans ta DLL ou utiliser la macro vs : declspec(__exportdll)

Si tu veux lier une DLL, donc utiliser des fonctions deja crées, il faut les importer. Pour ca, il te faut soit :
- un LIB fourni avec la DLL
- utiliser LoadLibrary
- utiliser declspec(__importdll)
0
Rejoignez-nous