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 :

Application modulaire en C++/CLI


Sujet :

C++/CLI

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre habitu�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Novembre 2007
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Par d�faut Application modulaire en C++/CLI
    Bonjours � tous,

    Je travail actuellement sur le projet d'une application modulaire, qui pourrait charger et d�charger des plug-ins � volont�..

    J'ai trouver un exemple qui correspond exactement � ce que je veut faire, mais cette exemple est en C#...

    Je l'es donc enti�rement converti, ligne apr�s ligne, du C# au C++/CLI�

    Mais j'ai un probl�me avec l'instruction suivante; le programme compile, mais g�n�re un exception : System.InvalidCastException: Impossible d'effectuer un cast d'un objet de type 'CommonTypes.AssyClass' en type 'CommonTypes.IFormAddOn'.


    En C# :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (IFormAddOnType != null)
    {
    //1 - instancier la classe
    object o = asm.CreateInstance(types[i].FullName);
    IFormAddOn formAddOn = o as IFormAddOn;
    //2 - invoker la méthode d'installation
    formAddOn.Install(form);
    foundInterface = true;
    }
    Et une fois convertie en C++/CLI :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if (IFormAddOnType != nullptr)
    {
    //1 - instancier la classe
    Object^ o = assembly->CreateInstance(types[i]->FullName);
    IFormAddOn^ formAddOn = (IFormAddOn^)o;
    // IFormAddOn^ formAddOn = safe_cast<IFormAddOn^>(o);
    // génère la meme erreur !!!
    //2 - invoker la méthode d'installation
    formAddOn->Install(form);
    foundInterface = true;
    }
    J'ai mi les sources compl�tes de mon projet sur le site suivant :
    http://arobasse2.free.fr/PlugIn.zip

    Merci � celui qui voudras bien m'aider, soit en trouvant une solution � mon probl�me, soit en m'indiquant une autre fa�on d'obtenir le m�me r�sultat�

    Bonne continuation � tous, @ bient�t�.

    J�r�my.

  2. #2
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    utilise plutot la balise code stp ...

    qu'est-ce que ca donne si tu fais :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    IFormAddOn^ formAddOn  = (IFormAddOn^)assembly->CreateInstance(types[i]->FullName);
    � la place de
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    Object^ o = assembly->CreateInstance(types[i]->FullName);
    IFormAddOn^ formAddOn = (IFormAddOn^)o;

  3. #3
    Membre habitu�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Novembre 2007
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Par d�faut
    Bonjour,

    Merci nico pour ta r�ponse, mais j'ai essayer de faire un cast comme tu l'indiquai, mais cel� me donne toujour la meme �rreur....


    Impossible d'effectuer un cast d'un objet de type 'CommonTypes.AssyClass' en type 'CommonTypes.IFormAddOn'.

    Merci encore pour ton aide, si tu as du temps � me pr�ter, t�l�charge mon code sur le site indiqu� plus haut, cela te permettra peut etre mieux de savoir ce qui ne marche pas....J'ai chercher une autre solution pour fair une application modulaire, mais je n'arrive � rien....

    PS : noyeu joel � tous.....

    jeremy

  4. #4
    Membre confirm� Avatar de deeal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    218
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 218
    Par d�faut
    j'ai essaie ton code
    je n'ai pas vraiment compris pourquoi le cast ne marche pas

    j'ai l'impression que AssyClass n'est pas defini, ou la CLR n'arrive pas a voir que AssyClass implemente l'interface IFormAddOn

    j'ai essaie de caster Directement l'object o a AssyClass, et ca ne marche pas, je pense qu'il manque peut-etre une inclusion de .h, mais e ne serait plus une architecture en plug-in.

    je suis interesse de voir la solution.

  5. #5
    Membre habitu�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Novembre 2007
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Par d�faut Ca fonctionne...
    Merci Deeal pour avoir pass� de ton temp sur mon souci....

    j'ai trouver depuis deux jour la solution....

    Si tu regarde dans le projet en c#, il y a une dll CommonTypes.dll qui sert � stocker l'interface des plug-in...
    J'ai donc recr�� un projet avec cette fois une dll comme dans l'exemple....
    Et le cast � fonctionner directement....

    Je mettrai bientot les sources de mon projet qui fonctionne, � la place des anciene source.....

    Merci encore � ceux qui m'ont aid�s..

    Bonne continuation !!!

  6. #6
    Membre habitu�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Novembre 2007
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Par d�faut
    J'ai uploader mon projet.
    Il n'est pas fini, loing de l�, mais cela pourra deja aider ceux qui le veulent

    Mon projet est � l'adresse suivante :
    http://arobasse2.free.fr/PlugIn.zip

    @++

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [information] framework GUI pour application modulaire
    Par trolldom dans le forum Windows Forms
    R�ponses: 1
    Dernier message: 01/11/2007, 23h40
  2. Probl�me de refresh dans une application modulaire
    Par TigrouMeow dans le forum Windows Forms
    R�ponses: 8
    Dernier message: 11/10/2007, 15h06
  3. R�ponses: 7
    Dernier message: 16/06/2007, 12h03
  4. Build / application modulaire
    Par Oscar Hiboux dans le forum Maven
    R�ponses: 1
    Dernier message: 05/12/2006, 17h38
  5. Comment faire une application modulaire
    Par JuJu� dans le forum C++Builder
    R�ponses: 3
    Dernier message: 04/08/2006, 11h35

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