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.
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.