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 :

DLL ou LIB ? (VC++ sous XP / Linux)


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Joccy
    Profil pro
    Inscrit en
    Août 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 153
    Par défaut DLL ou LIB ? (VC++ sous XP / Linux)
    Bonjour,

    je dois créer un parseur de fichier ini (je sais ca existe déjà ! ) mais comme il doit être utilisable par plusieurs exe développés sous VC++ 6.0 ET ensuite (assez rapidement en fait) sur Linux, je me demande si le mieux est une DLL ou une librairie statique .lib ? Ou même un exe ?
    Que pouvez-vous me conseiller ? (et me dire pourquoi la solution choisie est la meilleure ...)
    Merci de vos conseils ....

    PS: je ne connais pas vraiment Linux, mais je suppose que les librairies sont completement différentes de Windows ????

    PS2: les logiciels créés en VC++ 6.0 seront ré-écrit en Qt je pense, mais je souhaite avoir le moins de travail possible alors ....

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Je pense que le plus simple et le plus portable, c'est de faire une bibliothèque statique qui n'utilise que les fonctions standard pour lire le fichier.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirmé Avatar de Joccy
    Profil pro
    Inscrit en
    Août 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 153
    Par défaut
    Je ne suis pas familiarisée avec les librairies. Peut-on exporter une classe ? ou simplement des fonctions et des variables globales ?

    Si c'est du C, je suppose que ce ne sont que des fonctions et des variables ... (en tout cas, pour mon projet).

    Merci, je vous tiens au courant...

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Dans une bibliothèque statique, vu qu'elle est plus ou moins liée à un compilo, tu peux exporter une classe C++.
    Dans une bibliothèque dynamique, c'est plus compliqué.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre confirmé Avatar de Joccy
    Profil pro
    Inscrit en
    Août 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 153
    Par défaut
    Bon, j'ai créé un .lib (avec des fonctions, pas de classe). Mais comment débugguer une librairie ?
    J'ai créé un exe ailleurs, qui utilise la lib ...

    Autre question: j'ai récupéré un soft sur internet pour mon parseur, et j'ai un soucis de link:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    error LNK2019: symbole externe non résolu "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl GetValue<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??$GetValue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV01@@Z) référencé dans la fonction "public: void __thiscall CTestParseurDlg::OnBnClickedButton1(void)" (?OnBnClickedButton1@CTestParseurDlg@@QAEXXZ)
    C'est cette fonction là qui ne va pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // data des cles/valeurs
    std::map<std::string, std::string> data; // Data
     
    // Cette fonction retourne la valeur associée à la clé
    template <typename T> T GetValue(const std::string &key_);
    Quand je l'appelle dans mon exe ailleurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	INIParser("D:\\Jocelyne\\Artemis\\TestParseur\\Fichier0.ini");
    	if (IsParsed())
    	{
    		std::string key = GetValue<std::string>("TRACES/Activees");
    	}
    	INIParserClear();
    Merci de me dire ce qui ne va pas ...


    PS: je suis passée sous Visual Studio 2005 (c'est différent de VC++6.0 !!!).

    Merci

  6. #6
    Membre confirmé Avatar de Joccy
    Profil pro
    Inscrit en
    Août 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 153
    Par défaut
    Bon, j'ai fait différemment et maintenant j'arrive à debugguer ma lib sans probleme avec mon programme "externe" (elle n'avait pas du être prise en compte, je ne sais pas ...).
    Merci de votre aide.
    Je mets en résolu ...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/04/2007, 03h16
  2. installation de la lib BLT sous Linux
    Par tarantella dans le forum Tkinter
    Réponses: 1
    Dernier message: 12/09/2006, 10h23
  3. Lib. pour générer du RTF ou PDF en C++ sous Windows/Linux
    Par coolclasse dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 11/04/2006, 00h44
  4. [Sécurité] Execution des include() sous windows/Linux
    Par secteur_52 dans le forum Langage
    Réponses: 27
    Dernier message: 14/11/2005, 18h50
  5. [kdevelop]linker les lib openGL sous kdevelop
    Par bafman dans le forum OpenGL
    Réponses: 6
    Dernier message: 16/12/2003, 08h36

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