bobygus
Messages postés4Date d'inscriptionmardi 9 décembre 2003StatutMembreDernière intervention25 septembre 2007
-
7 sept. 2004 à 16:37
bobygus
Messages postés4Date d'inscriptionmardi 9 décembre 2003StatutMembreDernière intervention25 septembre 2007
-
8 sept. 2004 à 12:00
Bonjour alors, voici mon problème: (avec Visual C++.NET)
J'ai une carte d'acquisition qui pilote un automate.
La librairie de la carte d'acqu. (DAQlib.lib) est fournie par le fabricant.
J'ai créé ma propre librairie (motorlib.lib) qui comporte des fonctions spécifiques à mon système, celles-ci utilisant les fonctions de DAQlib.
Ainsi, j'envisageais d'utiliser mes fonctions dans un gros projet d'application, en incluant motorlib sans que ce projet dépende de DAQlib.
Seulement, dans ce projet, aprés avoir inclu la motorlib, aprés compilation, j'ai des erreurs : je dois aussi inclure DAQlib.lib...Donc finalement, autant incorporer mes fichiers .c de motorlib dans le projet directement (ce qui fait moins "propre"car ce projet est déja bien fourni en fichier ".c").
Voilà, donc, déja, est ce que ce que je cherche à faire est possible, et si oui, qu'est ce que j'ai oublié de faire ou de sélectionner dans les pages de propriétés de mon projet "motorlib"??
NitRic
Messages postés402Date d'inscriptionmardi 1 mai 2001StatutMembreDernière intervention15 août 2011 7 sept. 2004 à 21:16
Personellement, je te conseil simplement de lier les deux libs dont tu as besoin ... Sinon, tu pourais aussi charger le tout dynamiquement mais ca serait plus chiant.
Et c'est tout à fait normal de lier DAQlib.lib étant donné que motorlib.lib l'utilise
bobygus
Messages postés4Date d'inscriptionmardi 9 décembre 2003StatutMembreDernière intervention25 septembre 2007 8 sept. 2004 à 10:40
merci Nitric pour ta réponse.
Bon, finalement, j'avais trouvé une autre méthode hier soir : dans motorlib.h, j'avais oublié de mettre :
#ifdef __cplusplus
extern "C"
{
#endif
//déclaration de mes_fonctions();...
#ifdef __cplusplus
}
#endif
Du coup, avec ça, j'ai résolu mon problème car finalement, motorlib.lib est maintenant indépendant puisqu'il englobe DAQlib.lib. Je n'ai donc plus besoin d'inclure DAQlib...
J'ai d'autres questions, maintenant :
-Est il possible maintenant de faire que motorlib contienne uniquement les parties de DAQlib utilisées, afin de réduire la taille du fichier motorib.lib???
-Les directives "#pragma comment(lib, "motorlib.lib")" reviennent elles au meme que de faire la manipulation suivante avec visual : aller dans les propriétés du projet -> éditeur de liens -> entrée -> Dépendances supplémentaires : ajouter motorlib.lib ?
NitRic
Messages postés402Date d'inscriptionmardi 1 mai 2001StatutMembreDernière intervention15 août 2011 8 sept. 2004 à 11:24
#pragma te permet de modifier, ajouter, retirer, ... certaines directives ou autre au compilateur/linker tout comme si tu le ferais manuellement via ton IDE, donc, oui ca revient au même.