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++/CLI Discussion :

MFC & C++/CLI


Sujet :

C++/CLI

  1. #1
    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
    Points : 5 195
    Points
    5 195
    Par défaut MFC & C++/CLI
    Bonjour

    J'ai une librairie (.lib) qui contient des boites de Dialogues.

    J'aimerais bien pouvoir utiliser ces boites de Dialogues en .Net.

    Donc, wrapper C++/CLI me vient tout de suite en tête...

    Ma question est simple :

    En C#, on peut faire un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Control c = Control.FromChildHandle(...);
    Si je crées une fenetre en C++/CLI, j'ai ce Handle.. et tout fonctionne bien

    Maintenant, je corse le problème...

    Comment faire pour que le Handle que je vais "exploiter" dans mon code C#
    provienne d'une fenetre MFC (héritant de CDialog).

    Je sais bien qu'une CDialog possède un m_Hwnd... mais je n'arrive pas
    à faire fonctionner du C++/CLI intégrant des MFC.. (j'arrive à compiler mais à l'execution, on a l'impression qu'il lui manque un fichier (pourtant, j'ai essayé en bindant avec .lib, ou avec dll...)... Je soupçonne fortement l'utilisation des MFC en Shared DLL d'être responsable de cet état de fait.. mais bon)

    Donc, si quelqu'un a déja réussi à utiliser une CDialog écrite en C++ dans une application C++/CLI... je suis preneur de la démarche à suivre

    Merci d'avance
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  2. #2
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    namespace LibWrap
    {
            public ref class MyDllMfcWrap
            {
    	public:
    		[DllImport("MyDllMfc.dll", CharSet = CharSet::Ansi)]
    		static bool AfxShowDialog();
            };
    }
    Crée une dll MFC où tu ranges ta boite de dialogue dedans.
    La méthode AfxShowDialog() doit être une méthode d'exportation de ta dll
    Le code ci-haut doit figurer dans ton projet C++/CLI

    Ensuite quelque part dans ton projet CLR tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // code C++/CLI
    LibWrap::MyDllMfcWrap::AfxShowDialog();

Discussions similaires

  1. Problème de liaison C++/CLI avec DLL MFC
    Par skeltryx dans le forum C++/CLI
    Réponses: 10
    Dernier message: 27/04/2007, 15h07
  2. Réponses: 1
    Dernier message: 24/04/2007, 09h27
  3. MFC dans un service C++/CLI - erreur fatale
    Par basnifo dans le forum C++/CLI
    Réponses: 15
    Dernier message: 24/10/2006, 06h34
  4. C++/CLI, MFC ou les deux??
    Par 5:35pm dans le forum MFC
    Réponses: 3
    Dernier message: 27/04/2006, 08h28
  5. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57

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