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 :

Dll C# en C++


Sujet :

Langage C++

  1. #21
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 118
    Par défaut
    Citation Envoyé par fochristo Voir le message
    Si j'ai bien compris, pour la solution de fumidu, il faut que je compile monj projet C++ avec Boost et les 2 projets NativeAdapter / NativeToManageBridge dans son Download sources ? Ça fait pas un peu compliqué ? x_X
    A titre d'info, vu que tu as choisi une autre voie :
    Ca peut sembler un peu compliqué, mais ça ne l'est pas tant que ça : la partie de boost (boost/any) dont tu as besoin ne comporte que des headers, donc il n'y a rien de bien méchant à ce niveau, et oui, il faut rajouter les deux projets. Mais une fois que tout ceci est en place, l'utilisation des assembly .NET est quasiment transparente.

    J'ai déjà utilisé plusieurs fois cette solution, et ça prend peut-être une journée à mettre en place. Globalement, je pense que je suis gagnant par rapport à une solution passant par COM ou on doit tout faire soi-même à la main. Dans tous les cas, tu dois rajouter des wrappers intermédiaires, et là, les wrappers sont déjà codés de manière générique.

  2. #22
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Ok bah je me pencherais dessus si jamais besoin est, c'est en favoris

    Par contre là j'inclut le code dans mon vieux projet MFC sous visual studio 2003 (tous les tests étaient sous 2010 pour ne pas avoir besoin de changer de pc)

    Il me demande de faire un #using <mscorlib.dll>, ça pas de problèmes. Mais il me demande aussi l'option /clr, et si je l'ajoute il me dit que c'est incompatible avec l'option /RTC1.
    Cette option n'est pas utilisée dans le Release mais bon ça m'embêterais de ne plus pouvoir compiler en debug quand même x_x

    Y'a une solution ou pas ?


    Quand on porte l'appli sur d'autres pC après je suppose qu'il faut écrire dans les registres aussi pour rendre la dll accessible, on va pas installer VS2010 sur chaque PC ou on veux utiliser l'exe, on doit bien pouvoir les ajouter autrement ?

  3. #23
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Y'a un pc ou j'ai Visual Studio 2003.
    Un pc avec Visual Studio 2010.

    PC avec VS2010 crée la Dll C# et l'ajoute au C#
    PC avec VS2003 compile le programme en C++
    Avec ce PC je ne peux pas exécuter vu que je n'ai pas les infos dans les registres.
    Mais si je revient au PC avec VS2010, j'exécute l'exe C++ compilé sous l'autre PC et ça fonctionne.

    Il y a donc bien un truc à rajouter aux registres sur les autres PC sur lesquels on veux executer le prgramme, mais c'est quoi ? J'ai essayé d'exporter tout ce que j'ai trouvé en rapport avec ma DLL (3 registres en tout), en modifiants les chemins sauvegardés et les importer dans le PC VS2003, mais ça ne marche pas pour autant...

    Que faut-il faire ? Je touche presque au but

  4. #24
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 479
    Par défaut
    Votre Assembly C# est accessible comme un composant COM.
    Il faut donc l'enregistrer comme un composant COM.
    Il faut donc lancer la commande "RegAsm" durant le processus d'installation de votre application, comme dans l'exemple.

    Si votre application est MFC, il y avait dans le temps des ressources "rgs" (registry script) qui étaient directement lancées au démarrage de l'application.

  5. #25
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    En fait j'ai réussi à trouver, on peut demander à RegAsm.exe de générer un fichier .reg

    http://www.codeproject.com/KB/vb/Tlbexp_and_Regasm.aspx

    Il reste ensuite à utiliser ce fichier .reg sur les pc où on veut utiliser l'application et ça fonctionne

    Merci beaucoup pour votre aide en tout cas !

Discussions similaires

  1. [CR] Infos sur l'utilisation de dll
    Par step dans le forum SAP Crystal Reports
    Réponses: 11
    Dernier message: 09/08/2002, 11h35
  2. Declarer une dll Delphi ?
    Par DelphiCool dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/07/2002, 10h07
  3. Débug de DLL
    Par Bayard dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/07/2002, 15h08
  4. Equivalent à ExeName pour une DLL
    Par Smortex dans le forum Langage
    Réponses: 7
    Dernier message: 16/07/2002, 21h07
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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