svallee
Messages postés10Date d'inscriptionmercredi 3 septembre 2003StatutMembreDernière intervention 6 mars 2009
-
9 sept. 2008 à 10:23
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
9 sept. 2008 à 14:19
Bonjour,
On m'a fourni une classe C++ que je doit appeller dans un programme en VB.NET. J'ai trouvé comment appeller des fonctions C++ en VB.NET mais une classe ! est-ce possible ?
Merci d'avance
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 9 sept. 2008 à 14:19
Salut,
Autant prévenir, toutes mes solutions sont plus ou moins pourris.
La solution 3 est probablement la plus facile, bien que ça dépende de ce que tu dois faire avec ta classe (Une instance où plusieurs instances... Si plusieurs, il faudrat passer par un tableau...). La première est longue et complexe à mettre en oeuvre. La 2, je n'en ai aucune idée.
## Solution 1 :
En C++, on peut faire des classes COM et les stocker dans une dll. Le VB.NET est à peu près compatible avec la techno COM, et peut utiliser les classes COM définies dans une dll, moyennant quelques cliques à droite et à gauche dans Visual Studio.
Par contre, ce n'est pas évident de faire des classes COM en C++ (cf mon lien un peu plus haut pour avoir plus d'infos).
## Solution 2 :
Tu dois aussi pouvoir t'arranger pour faire du C++/CLI, et compiler ta classe dans un assembly .NET. Tu pourras facilement utiliser cette classe dans ton VB.NET. Je n'ai aucune idée de comment s'y prendre et de ce que doit respecter une classe C++ pour être compilable en .NET.
## Solution 3 :
Mettre ta classe dans une dll classique exportant des fonctions C, qui elles même appellent les fonctions C++ (Avantage, pour se la pêter, on peut appeler ça un wrapper). Au final, ça donne ça :
VB.NET <-> C <-> C++