Bonjour,
Je suis actuellement en train de développer une application c# qui demande une SDK (fbx) écrit en C++, j'ai donc créé plusieurs projets :
- un projet c# wpf pour l'interface utilisateur et la gestion de l'application
- un projet C++/CLI pour lier le code c# avec une classe C++ native
- un projet C++ natif utilisant la librairie FBX.
Avec des types simples (liste de int, double, même de classe custom), le passage de C# à C++ se déroule très bien.
Les problèmes arrivent avec une DLL C# connue à la fois par mon application C# et le wrapper C++/CLI.
Du coté de l'importation de la DLL dans la partie C#, aucun problème.
Pour la partie C++/CLI, après ajout de référence vers la dll et utilisation de
Je peux utiliser les types définis dans la DLL au sein du projet C++/CLI, le compilateur ne râle pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 #using <CsharpDLL.dll> using namespace csharpdllnamespace
Cependant, je ne peux pas appeler une fonction C++/CLI utilisant un type de la DLL C# dans l'application C#
Code d'exemple :
DLL C# : classe 'Mesh'
Fichier C++/CLI.h
Fichier C++/CLI.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 void wExportFBX(String^FileName, Mesh pMesh);
Fichier C#
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void wExportFBX(String ^FileName,Mesh pMesh) { pMesh.AddVertex(...); }
Compilateur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 wrapper.wExportFBX("File Name", MyMesh);"wExportFBX" is not supported by the language.
Comment faire en sorte que mon projet C# & mon projet C++/CLI utilisent tout deux ma dll et puissent se passer des objets sans tout avoir à recoder ?
d'avance merci, j'espère que mes explications ne sont pas trop floues.
Partager