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 :

Migration d'un programme C++ en C#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 25
    Par défaut Migration d'un programme C++ en C#
    Bonjour à tous,
    Je dispose d'un programme écrit en C++ permettant de gérer la détection de matériel USB relier à une carte de commande. Ce programme intègre également une interface graphique pour recueillir les données permettant de piloter la carte.
    Je travaille sur Visual studio 2008 et je dois réécrire ce programme en utilisant le langage C#, mon problème est le suivant: est il possible d'intégrer les fonctions et les bibliothèques C++ à C# c'est à dire programmer une partie du programme en C# et une autre en C++ ou faut il absolument réécrire la totalité du programme en C#? Ainsi par exemple faire un programme permettant la gestion de l'interface graphique à l'aide de C# (pour l'optimiser) et intégrant les fonctions de détection du matériel USB.
    Je vous en remercie d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    t'as de la chance car la question a déja été plusieurs fois posées

    Donc...

    Soit tu ré-écris tout en C#... c'est bien sur possible

    Soit tu as 2 approches possibles....

    1 - tu utilises l'Interop (interopérabilité).. en gros, c'est un mécanisme qui te permet à partir d'un programme .Net (VB.Net, C# dans ton cas), d'appeler
    des méthodes d'une DLL... pour ce faire, regardes du coté de l'interop.. seul
    inconvénient, tu appelles des méthodes et non une classe

    2 - Tu peux faire un Wrapper .Net en C++/CLI managé de ta classe C++ native. Ca consiste grosso modo à "encapsuler" le code C++ Natif dans une classe .Net qui offrira les méthodes de ta DLL dans un environnement C#...
    En general, quand on fait cela, on se "contente" d'avoir un pointeur sur la classe à encapsuler dans sa classe .Net, et pour chaque fonction de la classe C++ native, on fait une méthode dans la classe managée et le corps de la fonction managé consiste uniquement à appeler les fonctions de la DLL native (eventuellement en faisant les "traductions" de type nécessaires)

    voila...

    The Monz, Toulouse

  3. #3
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 25
    Par défaut
    Je te remercie beaucoup pour ton aide.
    Je comprends pas très bien la manière de procéder pour utiliser l'interop ou encore pour faire un Wrapper.Net. Peut on effectuer ces opérations depuis visual studio? Je suis entrain de faire des recherches de mon côté, si vous connaissez des sites ou des pages intéressantes qui pourrait m'aider dans le sujet, ça serait sympa de me les envoyés.
    Merci

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Salut

    ici, sur le site, tu trouveras des tutoriaux de mémoire sur l'interop...

    Bien sur.. tu fais tout sous visual Studio...

    Ecrire un Wrapper, ce n'est rien d'autre que faire un bout de code qui te permet d'utiliser une "technologie" dans une autre... Un peu comme si tu faisais un wrapper pour utiliser une librairie Java en C++/CLI..

    The Monz, Toulouse

Discussions similaires

  1. Migration d'un programme XE4 vers XE7 (ou XE8) boires et déboires
    Par SergioMaster dans le forum Composants FMX
    Réponses: 1
    Dernier message: 22/04/2015, 11h21
  2. Réponses: 1
    Dernier message: 06/05/2014, 13h48
  3. Migration d'un programme Delphi
    Par Ellobo dans le forum Bases de données
    Réponses: 8
    Dernier message: 12/04/2013, 10h12
  4. Réponses: 3
    Dernier message: 23/07/2012, 11h34

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