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 :

Dépendance g++ dans VStudio


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 107
    Points : 51
    Points
    51
    Par défaut Dépendance g++ dans VStudio
    Salut à tous,

    Je dois faire une appli Windows Form qui utilise une dll compilée sous Linux avec g++.
    Je dispose des sources de cette dll.

    Pour vous quelle est la meilleur facon de faire mon application Windows Form ?
    (VS C++, VS C++ managé (CLR), C# ???)

    Si la question est trop floue, voici quelques petites questions qui m'embêtent beaucoup ....

    1) Est-il possible (et comment ) d'utiliser une dll compilée sous Linux avec g++ dans un projet C++ (managé de préférence) sous Visual Studio ?

    2) Si je dispose des sources de la dll compilée g++, quelles sont les étapes et les options VS pour avoir une assembly utilisables avec C# ?


    Merci de votre aide

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ta DLL, quel genre d'interface possède-t-elle?
    • Si elle a une interface C++, elle n'est utilisable que par d'autres projets g++.
    • Si elle a une interface C, elle peut être utilisée depuis la plupart des langages compilés.
    • Si elle a une interface COM, elle peut être utilisée depuis la plupart des langages compilés et même (dans le cas d'une interface COM duale) certains langages de script.
    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 du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 107
    Points : 51
    Points
    51
    Par défaut
    Merci de ton aide mais hélàs je ne l'ai pas encore sous la main.
    En fait, j'étudie déjà le problème car je n'aurai pas beacoup de temps pour faire mon application dès lors qu'on m'aura donner la dll et ses sources.

    Je pense que ce sera une interface C++.
    Mais vu que j'ai les sources, je peux reprendre les sources, faire les includes qui vont bien, ajouter des options de compilation, etc.
    Mais je voudrai toucher le moins possible au code.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par greenzephyr Voir le message
    1) Est-il possible (et comment ) d'utiliser une dll compilée sous Linux avec g++ dans un projet C++ (managé de préférence) sous Visual Studio ?
    Une dll compilée pour Linux ne peut pas être utilisée sous Windows et vice-versa (pour faire simple). Et on peut même dire que à la base, une dll "C++" compilée avec un compilateur ne peut pas être utilisée par un exécutable compilé avec un autre compilo. D'où la remarque de Médinoc.

    Il va te falloir, au minimum, recompiler ta dll sous Windows avec le port Windows de GCC.

    Maintenant, il y a encore une nouvelle incompatibilité : celles des mondes C++ et .Net.

    Citation Envoyé par greenzephyr Voir le message
    2) Si je dispose des sources de la dll compilée g++, quelles sont les étapes et les options VS pour avoir une assembly utilisables avec C# ?
    C++/CLI existe pour effectuer ce genre de liaisons. Il va te falloir faire plusieurs choses :
    - transformer ta dll "g++" en une dll compilable avec VC++ : c'est du C++ Windows pur et dur = portage de ta dll Linux g++ vers Windows VC++
    - encapsuler le code C++ natif avec du code C++/CLI qui sera visible et utilisable depuis le monde .Net (C# ou autre)

    La difficulté de se travail est directement liée au code de la dll en question, donc pas vraiment possible d'en dire plus sans voir le code !

Discussions similaires

  1. dépendance manquante dans maven
    Par L'aigle de Carthage dans le forum Maven
    Réponses: 23
    Dernier message: 22/04/2011, 16h36
  2. Réponses: 1
    Dernier message: 30/04/2010, 18h56
  3. [DF] Définition d'une dépendance fonctionnelle dans Merise
    Par meryDev dans le forum Schéma
    Réponses: 3
    Dernier message: 14/11/2009, 17h42
  4. Réponses: 18
    Dernier message: 13/05/2009, 15h54
  5. Réponses: 6
    Dernier message: 06/04/2009, 14h57

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