Undefined reference [WIN32] [API]

Utilisateur anonyme - 14 juin 2004 à 16:33
 Utilisateur anonyme - 15 juin 2004 à 00:33
Bonjour,

J'ai un problème de linkage assez bizarre (compilateur : GCC 3.2 : dev-cpp 4.9.8.0).
Dans une de mes classes, j'utilise les API DeleteObject, GetObject, CreateCompatibleDC, BitBlt etc... faisant partie de la librairie gdi32.lib.

Si je mets cette classe dans le projet de mon executable, aucun problème : çà compile, çà link, l'exe est généré.

Mais par contre, si je la mets dans le projet d'une DLL, j'ai des undefined reference au moment du linkage pour chacune des API ci-dessus. (je précise que j'ai bien inclus windows.h dans les 2 projets)
Pour résoudre le problème, je suis obligé d'inclure manuellement la librairie libgdi32.a dans les options de linkage du projet de la DLL.

Pourquoi ?

Merci !

2 réponses

cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
14 juin 2004 à 19:38
Bonjour,

C'est normal que tu sois obligé de dire à ton compilateur d'utiliser les libs que tu as besoin. Il n'y a aucun problème.

@+
Arnotic,
Admin CS, MVP Visual C++
0
Utilisateur anonyme
15 juin 2004 à 00:33
Ben, oui, je suis d'accord. Mais ce que je ne comprends pas, c'est que je dois lui dire quelle lib utiliser pour un projet de DLL, alors que dans un projet d'exe, pas besoin de lui dire.

Surtout que dans la DLL, j'utilise d'autres API, et je n'ai pas besoin d'ajouter les libs correspondantes.

Enfin, ce n'est pas grave, çà marche, mais j'aurai bien voulu comprendre où est la différence.
0
Rejoignez-nous