bonjour,
Je souhaiterai savoir comment inclure une bibliothèque de classe CLR dans une application Windows Form de façon dynamique et non statique.:
Merci d'avance![]()
bonjour,
Je souhaiterai savoir comment inclure une bibliothèque de classe CLR dans une application Windows Form de façon dynamique et non statique.:
Merci d'avance![]()
regarde du coté de loadassembly
J'ai trouvé effectivement un début de solution avec les assembly.
Voici le code généré par mes 3 fichiers:
DLL2.h
namespace DLL2
{
class ClassFonction
{
public:
static double Add(double a, double b);
};
}
DLL2.cpp
#include "DLL2.h"
namespace DLL2
{
double ClassFonction::Add(double a, double b)
{
return a + b;
}
}
dans le fichier exécutable:
System::Reflection::Assembly^ ExempleAssembly;
ExempleAssembly=System::Reflection::Assembly::LoadFrom("DLL2.dll");
mais, je ne sais pas comment utiliser la fonction Add(...) dans mon exécutable ?![]()
Comment poursuivre ?
ben il faut typer avec ClassFonction
Bonjour,
Voici mon code :
System::Reflection::Assembly^ ExempleAssembly;
ExempleAssembly=System::Reflection::Assembly::LoadFrom("DLL2.dll");
Type^ t=ExempleAssembly->GetType();
Object^ Objet=ExempleAssembly->CreateInstance("DLL2.ClassFonction");
-> label2->Text=Convert::ToString(((DLL2::ClassFonction)Objet)->Add(1,2));
J'ai des erreurs de code sur la dernière ligne car je n'arrive pas à utiliser la fonction Add:
Erreur 1 error C2440: 'cast de type'*: impossible de convertir de 'System::Object ^' en 'DLL2::ClassFonction' Form1.h 126
Erreur 2 error C2819: le type 'DLL2::ClassFonction' n'a pas d'opérateur 'operator ->' de membre surchargé Form1.h 126
Erreur 3 error C2232: '->DLL2::ClassFonction::Add'*: opérande gauche avec type 'class', utilisez '.' Form1.h 126
A priori, je ne sais pas correctement utiliser le transtypage, mais je ne sais par comment modifier mon code ?
ah oui ok, ben en fait, il faut que tu fasses une classe managée publique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public ref class ClassFonction { ... };
Partager