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:
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:
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.