Undefined reference [WIN32] [API]

Signaler
Messages postés
27
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
19 juin 2004
-
Jeffray
Messages postés
27
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
19 juin 2004
-
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

Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
1
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++
Messages postés
27
Date d'inscription
mercredi 9 octobre 2002
Statut
Membre
Dernière intervention
19 juin 2004

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.