basic_meu
Messages postés2Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention 7 janvier 2007
-
7 janv. 2007 à 14:56
basic_meu
Messages postés2Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention 7 janvier 2007
-
7 janv. 2007 à 19:22
Bonjour !
Je suis actuellement en train de développer une application qui compporte (entre autres) une dll.
D'ordinaire ce genre de librairie ne me pose aucun problème mais la j'essaye de faire un truc que le compilateur (Visual C++ 2005) ne comprend pas tellement.
Voila mon probleme: j'ai mon programme principal qui fait appel a une classe située dans ma dll. Jusque la aucun probleme.
La ou ça se corse c'est que ma dll fait appel une classe (en singleton) du programme principal.
Je met les includes qu'il faut et je link avec les .lib qu'il faut. Le problème c'est que pour compiler le projet dll, il faut principal.lib, et inversement pour compiler le prog principal il faut dll.lib.
Le truc c'est que comme pour compiler l'un on a besoin de l'autre, ca risque pas de marcher. J'ai quand même trouver une astuce de truand pour résoudre temporairement le truc: je crée un fichier vide principal.lib et je compile la dll. Ca marche sauf qu'il me pète un 'undefined reference' tout a fait logique, mais il crée quand même le dll.lib. Ensuite je compile le prog principal, ca marche et ca écrase le principal.lib avec lequel je peux finalement compiler la dll correctement.
Voila donc ma question: Y a-t-il un moyen pour faire marcher ça en une seule compilation ?
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 7 janv. 2007 à 17:15
Je propose quelque chose qui ne te satisfera peut-être pas mais bon...
Déclare dans la dll une classe abstraite avec des méthodes virtuelles (celles dont tu as besoin) puis dans l'app principale déclare ta classe comme héritant de celle-ci. Ainsi la dll n'aura pas besoin de link avec l'app, et tu pourras conserver l'implémentation de la classe dans l'app.