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

C++ Discussion :

Biblioth�que statique C++ export en C


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �prouv�
    Profil pro
    Inscrit en
    F�vrier 2004
    Messages
    1 825
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 1 825
    Par d�faut Biblioth�que statique C++ export en C
    Bonjour,

    J'ai fait une biblioth�que statique en C++ et pour l'attaquer j'ai fait une structure avec des fonctions contenant que des types primitifs.

    L'objectif est qu'un utilisateur qui est en C pure puisse l'utiliser.

    Mais je sais que la d�finition des fonctions en C++ est expos�e diff�remment dans les binaires pour g�rer les surcharges, donc le type des param�tres est indiqu� dans la d�finition emp�chant ainsi les doublons sur uniquement les noms.

    Par cons�quent j'ai un doute sur la possibilit� d'utiliser ma biblioth�que en C pure. En gros, je veux fait l'inverse de "extern "C" { ... }" qu'on utilise pour importer des fonctions C afin d'exposer mes fonctions en C Style m�me si derri�re l'impl�mentation redirige vers du C++.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    (lib.h)
    struct Lib
    {
       int MaFonction1();
       int MaFonction2();
    }
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    (lib.cpp)
    Lib::MaFonction1()
    {
       Manager.FonctionCpp1();
    }
    Lib::MaFonction2()
    {
       Manager.FonctionCpp1();
    }
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    (main_user.c)
     
    #include "lib.h"
    int main(int argc, char** argv)
    {
       Lib l;
       l.MaFonction1();
       l.MaFonction2();
    }
    Est-ce possible ? Peut-�tre qu'il n'y a juste � mettre "extern "C" {" en d�but du fichier lib.h et "}" en fin ?

    Merci � tous,

    A bient�t

  2. #2
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Salut,

    l'impl�mentation on s'en moque, c'est interne. Que �a utilise du C++, C#, JAVA ou peu importe... �a ne concerne que toi et pas quiconque veut utiliser ta lib. (on serait bien mal sinon)
    Si tu veux exposer une interface C, il faut utiliser extern "C".
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  3. #3
    Membre �prouv�
    Profil pro
    Inscrit en
    F�vrier 2004
    Messages
    1 825
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 1 825
    Par d�faut
    Parfait merci beaucoup

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

Discussions similaires

  1. R�ponses: 3
    Dernier message: 25/01/2015, 10h44
  2. R�ponses: 9
    Dernier message: 09/11/2007, 13h46
  3. R�ponses: 4
    Dernier message: 28/08/2007, 22h34
  4. Probl�me de lien avec une biblioth�que statique
    Par streetpc dans le forum C++/CLI
    R�ponses: 2
    Dernier message: 28/10/2006, 17h38
  5. Utiliser une biblioth�que statique
    Par djflex68 dans le forum MFC
    R�ponses: 6
    Dernier message: 15/08/2005, 19h26

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