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 :

importer lib compilée en c dans projet c++ express 2005


Sujet :

Visual C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 50
    Points : 26
    Points
    26
    Par défaut importer lib compilée en c dans projet c++ express 2005
    Bonjour,
    j'utilise visual studio c++ express 2005

    Et j'ai un programme qui fait appel a une librarie ecrite en C (hali mkv parser)

    Je compile la librairie séparement pour en faire un .lib (en mettant le .c et le .h dans le projet)

    Ensuite dans mon nouveau projet
    je fais

    extern "C"
    {
    <leheaderdelalib.h>
    }

    et j'inclue la librairie dans la config, je n'ai aucun message d'erreur lors de la compilation ni meme d'erreur de fichier lors du linkage,
    les seuls erreurs que j'ai sont

    error LNK2019: unresolved external symbol _mkv_SetTrackMask
    (toutes ces fonctions sont censées etre dans le .lib crée auparavant)
    ...
    que des erreurs 2019.

    Aurais je mal compilé cette lib?
    Merci de votre aide,

  2. #2
    Membre du Club Avatar de Cirdan Telemnar
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Points : 69
    Points
    69
    Par défaut
    non tu n'as pas mal compiler cette lib mais je pense que c'est ton appel qui merde

    moi j'ai declarer les fonction de ma dll comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extern __declspec(dllexport) int MaFonction(char *Param1, int Param2);
    et je l'appel dans mon projet VS2005 comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    extern "C" {
    _declspec(dllimport)  int FAR PASCAL MaFonction(char *Param1, int Param2);
    }
    mais peu etre que ce que tu as fait c'est bon mais j'ai jamais vu ca et je suis pas un expert

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 50
    Points : 26
    Points
    26
    Par défaut
    Merci pour ta réponse,

    En fait ma lib est une static lib,
    je ne fait pas de dll.

    Je souhaite en faire une lib pour pouvoir la compiler tranquillement en C sans erreur et ensuite la réutiliser dans une appli en C++ dans laquelle j'inclue simplement le .h

  4. #4
    Membre du Club Avatar de Cirdan Telemnar
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Points : 69
    Points
    69
    Par défaut
    bas la je peux pas t'aider car j'ai toujour fais des dll

    bon courage

  5. #5
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut, le principe reste le meme les fonctions doivent etre declarées extern"c"
    voir faq:
    http://c.developpez.com/faq/vc/?page=IDE#MixCAndCPlus

    le seul hic tu risques d'avoir des problemes de lib crt si cette lib n'est pas construite avec VC2005.
    a voir donc..

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 50
    Points : 26
    Points
    26
    Par défaut
    merci pour vos réponses,
    ca fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/02/2009, 18h28
  2. perdu dans sql server express 2005
    Par anikon dans le forum Développement
    Réponses: 5
    Dernier message: 07/09/2008, 18h14
  3. Réponses: 2
    Dernier message: 24/03/2008, 14h48
  4. Réponses: 2
    Dernier message: 09/01/2007, 12h29
  5. [Eclipse CDT] creer une lib et un executable dans le meme projet ?
    Par mamelouk dans le forum Eclipse C & C++
    Réponses: 4
    Dernier message: 28/11/2006, 16h05

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