2009-02-16 6 views
0

J'ai une bibliothèque de classes C# qui contient des méthodes devant être utilisées avec une application externe. Malheureusement, cette application externe ne supporte que les API externes en C/C++. Supposons que j'ai une méthode takeIntReturnDoubleArray dans cette bibliothèque C# qui prend un entier et retourne un tableau de doubles. Tout ce que j'ai besoin de faire est d'avoir une méthode C++ qui prend un entier, appelle la bibliothèque C# et renvoie un tableau de doubles à l'application appelante. Par conséquent, la bibliothèque C++ agit simplement comme un intermédiaire entre l'encapsuleur C# et l'application externe.Importation d'une bibliothèque de classes C# dans Visual C++

Y at-il un moyen facile de faire cela? Dois-je faire quelque chose de spécial sur le côté C# pour pouvoir l'importer facilement en C++? J'ai vu parler d'utiliser l'instruction # import, mais je n'ai aucune idée de ce que je fais en C++.

Quelle est l'approche que je devrais prendre ici?

Répondre

4

Vous avez deux options principales ici:

  1. C++ \ CLI - ce qui vous permet d'avoir à la fois le code managé et non géré dans le même fichier source. La partie gérée peut alors appeler le code C#.
  2. COM Interop - expose votre type .NET en tant qu'interface COM et coclasse correspondante que vous pouvez facilement utiliser à partir de C++ non géré.
+0

Je préférerais aller avec la solution la plus simple. Je crois que je peux garder mon C++ comme code managé. – Alex

+0

J'ai fini par aller avec COM. Ce n'était pas agréable mais ça a fait le travail. – Alex

Questions connexes