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

Langage C++ Discussion :

exportation sous plusieurs OS (Windows/Linux)


Sujet :

Langage C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 40
    Points : 33
    Points
    33
    Par défaut exportation sous plusieurs OS (Windows/Linux)
    Salut, je suis entrain de créer une bibliothèque en c++ et je me demandais quelle était l'équivalent sous Linux de ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    extern "C" __declspec(dllexport) class maClasse{
    public:
        ~maClasse();
        maClasse(){}
        __declspec(dllexport) void méthode1();
        __declspec(dllexport) void méthode2();
    };
    En gros est ce qu'il existe un équivalent au "__declspec(dllexport)" ou si il suffit tout simplement de l'enlever.

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Cela à un sens de faire un extern "C" pour une classe C++ ?
    Cela fonctionne ?
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par grutt Voir le message
    En gros est ce qu'il existe un équivalent au "__declspec(dllexport)" ou si il suffit tout simplement de l'enlever.
    Il suffit de l'enlever.

    Mais effectivement, un extern "C" sur une classe C++, ça me parait plus que douteux...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 40
    Points : 33
    Points
    33
    Par défaut
    Ok merci

    Pour le extern "C" sur la classe...
    Je dois avouer que ça fait longtemps que j'avais pas touché à ce code et du coup je sais plus trop pourquoi je l'avais mis
    En plus comme il n'y a aucun soucis à l'exécution je n'y suis jamais revenu
    Mais je vais essayer de retrouver d'où ça sort et voir si c'est justifié.

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par The Norme
    A C language linkage is ignored for the names of class members and the member function type of class member functions.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    extern "C" {
    class X {
    void mf(); // the name of the function mf and the member function’s type have C++ language linkage
     
    void mf2(void(*)()); // the name of the function mf2 has C++ language linkage; the parameter has type pointer to C function
    };
    }

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Comme cela au moins, c'est clair extern "C" est autorisé sur une classe mais il est ignoré.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  7. #7
    screetch
    Invité(e)
    Par défaut
    Citation Envoyé par grutt Voir le message
    En gros est ce qu'il existe un équivalent au "__declspec(dllexport)" ou si il suffit tout simplement de l'enlever.
    il existe un excellent equivalent sous GCC sous linux (elf en général)
    compiler avec -fvisibility=hidden
    et __declspec(dllexport) doit etre remplacé par __attribute__ ((visibility("default")))

    [edit] wouhouh 1000 messages

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/02/2008, 08h27
  2. Comment gérer des reps sous Windows & Linux ?
    Par Sylver--- dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2007, 13h04
  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

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