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++
La doc de wikipedia sur les dlls est pas mal. Côté C++, il faut que tu fasse comme dans cette doc :
extern"C" __declspec(dllexport) int toto()
{
return monInstanceDeClasse.toto();
}
Côté VB.NET, il faut utiliser declare ou dllimport.
Attention à la convention d'appel.