IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

Integration d'une librairie C dans un programme C++


Sujet :

Visual C++

  1. #1
    Membre �clair� Avatar de kitsune
    Inscrit en
    D�cembre 2004
    Messages
    341
    D�tails du profil
    Informations personnelles :
    �ge : 39

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 341
    Par d�faut Integration d'une librairie C dans un programme C++
    Bonjour,

    Je ne sais pas trop dans quel forum poster vu que j'ai du mal a cerner la nature de mon probleme...
    Donc voila j'utilise Visual Studio C++ et j'aimerai integrer a mon projet une librairie ecrite en C.
    J'ai donc inclu le fichier lib et les headers.

    Quand je cree une variable du type appartenant a cette librairie, ca compile mais des que je veux appeler une fonction je recois un "unresolved external symbol" au moment de l'edition des liens.

    Je ne vois pas quel est le probleme, est-ce qu'il y a quelque chose de special a faire pour integrer une librairie C a un programme C++ ? Ou ca vient d'ailleurs ?

    Merci.

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    voir faq ,tes fonctions doivent utiliser extern "C":
    http://cpp.developpez.com/faq/vc/?page=DLL#MakeDynDll

  3. #3
    Membre �clair� Avatar de kitsune
    Inscrit en
    D�cembre 2004
    Messages
    341
    D�tails du profil
    Informations personnelles :
    �ge : 39

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 341
    Par d�faut
    Oui j'avais deja essaye mais j'ai l'impression que c'est plus un probleme de linkage... Quand je rajoute extern "C" il me dit "linkage specification contradicts earlier specification for...".

    Je ne sais pas s'il y a un rapport mais c'est une librairie statique. J'ai recupere les sources et genere le fichier lib a partir de celles-ci.
    Ensuite je l'ai lie a mon projet mais il me manque peut-etre un truc...

    EDIT: apres un aprem dessus je vais pas tarder a devenir dingue ^^"
    donc a priori c'est un probleme de liens relatif aux fonctions de la librairie que je veux utiliser... le extern "C" je dois le mettre ou exactement ?

    merci...

  4. #4
    Membre �clair� Avatar de kitsune
    Inscrit en
    D�cembre 2004
    Messages
    341
    D�tails du profil
    Informations personnelles :
    �ge : 39

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 341
    Par d�faut
    Personne n'a une petite idee ?

  5. #5
    Membre �clair� Avatar de kitsune
    Inscrit en
    D�cembre 2004
    Messages
    341
    D�tails du profil
    Informations personnelles :
    �ge : 39

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 341
    Par d�faut
    Bon j'ai un peu avance dans mon bazar.
    J'ai ajoute en librairie ignoree : libcmt, dans code generation /Mtd et j'ai passe l'option Use of MFC a "use MFC in a Static Library".
    Du coup je n'ai plus d'erreur avec le mot-clef external "C".

    Par contre toujours des "unresolved external symbol" sur les fonctions que j'appelle. Quand je mets external "C" { }; autour de mon include du header de la librairie il m'en resoud un seul.
    Quand je mets ce external "C" autour des declarations de fonctions ca ne change rien non plus... Ca marche seulement pour une des fonctions que j'appelle...

  6. #6
    Membre �clair� Avatar de kitsune
    Inscrit en
    D�cembre 2004
    Messages
    341
    D�tails du profil
    Informations personnelles :
    �ge : 39

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 341
    Par d�faut
    Bon ben finalement je suis venue a bout de mon probleme.
    Je n'ai toujours pas trouve comment integrer la librairie TAUCS a mon projet mais j'ai trouve une solution qui marche.

    Donc pour ceux qui ont le meme probleme sous Visual Studio avec TAUCS, voici un lien interessant: http://www.cs.tau.ac.il/~lgavish/CG07a/index.htm

    Il suffit d'ajouter le projet propose a votre solution, de specifier les options /Mtd pour le debug et /Mt pour le release dans les 2 projets (taucs et le votre), linker taucs.lib, ajouter le repertoire de cette lib (taucs/debug) et ignorer libcmt.

    Voila, au cas ou ca peut interesser des gens...

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Appel d'une dll (c++) dans un programme c++
    Par cout dans le forum C++
    R�ponses: 2
    Dernier message: 01/06/2006, 14h52
  2. integration d'une image SVG a un programme JAVA
    Par Mardagg dans le forum Interfaces Graphiques en Java
    R�ponses: 2
    Dernier message: 14/04/2006, 16h42
  3. R�ponses: 2
    Dernier message: 06/04/2006, 17h44
  4. Integration d'une page html dans un mail
    Par mael94420 dans le forum ASP
    R�ponses: 7
    Dernier message: 13/12/2005, 08h47
  5. R�ponses: 2
    Dernier message: 24/06/2003, 20h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo