Comment appeler une méthode d'une classe d'une DLL c# avec c++

dorras7 Messages postés 63 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 23 décembre 2010 - 6 juil. 2009 à 10:56
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 18 juil. 2009 à 18:27
Bonjour,
Mon problème est le suivant : je ne sais pas comment faire en C++ pour
appeler une méthode d'une classe contenue dans une DLL ActiveX écrite
en c#.
J'arrive bien à charger la DLL avec LoadLibrary.
Mais je sais pas comment instanciée une classe contenue dans ce DLL puis j'utilise les méthodes associé à cette classe
Merci de m'aider

4 réponses

draonix Messages postés 43 Date d'inscription mercredi 27 mai 2009 Statut Membre Dernière intervention 7 juin 2011
6 juil. 2009 à 11:55
salut,
Vu que tu as importer la bibliothèque tu peux instancier ta classe comme ceci

Class ma_classe = Class(arguments de la classe )
puis pour les méthodes
Class.methode (arguments)

Mis à part l'initialisation ca ne devrait pas trop changer
0
dorras7 Messages postés 63 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 23 décembre 2010
6 juil. 2009 à 12:05
Bonjour,
j'ai déja fait mais lors de la compilation il sort une erreur
Voici ce que j'ai fait
 HMODULE hDLL = LoadLibrary(_T("Browser.dll"));
     if(hDLL == NULL)
            return FALSE;
   // HMODULE hDLL1 = LoadLibrary(_T("SeeSPMPLMClientLib.dll"));
    Display DisplayWindow=new Display();
    DisplayWindow.initialize();

-->Erreur méthode initialize non défini, en plus il ne sort aucune méthode approprié à la classe Display
0
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
6 juil. 2009 à 13:03
Salut,
Je ne vais pas d'aider, mais :
je crois que tu ne peux pas attaquer une dll C#. Il faut un wrapper C++/C# écrit en C#.
Il y a bcp d'exemple c# -> c++, malheureusement très très peu l'inverse (ce que tu veux).
Essaie de modifier ta recherche sur le web en cherchant, un wrapper vb6<->vb.net, pour avoir le principe.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
18 juil. 2009 à 18:27
Salut,

Si c'est vraiment une dll ActiveX, l'interface exposée n'est plus en dotnet.
Cela devient du COM classique.

Donc utilisable normalement en C++, avec CoCreateInstance et le reste. Pas du tout du LoadLibrary qu'il faut faire.
0
Rejoignez-nous