2013-10-01 8 views
-1

J'ai deux classes C++ managées. Lequel est utilisé pour communiquer avec le périphérique i2C. J'ai besoin de les utiliser en C#. J'ai 2 fichiers ".h" qui ont la source et la déclaration. Ai-je besoin de le convertir en C# ou si je crée une DLL à partir de cela, comment puis-je faire cela?Classe managée C++ et C#

Code

est STH comme:

public ref class Class1 
{ 
    AnotherClass object = new Anotherclass(); 
    Method1(); 
    method2() 
} 

public ref class AnotherClass 
{ 
} 

Répondre

1

Ajoutez le projet C++/CLI et le projet C# dans la même solution. Ajoutez ensuite une référence du projet C# au projet C++/CLI

0

écrire simplement un emballage de ces fonctions en C++ (CLI), et il peut alors être visible et consommée par .NET en créant les références pertinentes du projet.

+0

Cette chose wrapper est confuse (au moins pour ce code). Il utilise des objets et j'en ai besoin plus haut dans mon code C# – Zigma

1

L'utilisation d'une classe ref permet au compilateur C++/CLI de générer des métadonnées pour la classe dans l'assembly. Pas besoin d'un fichier .h, tout compilateur .NET peut lire ces métadonnées et utiliser cette classe.

Ajoutez simplement la référence dans votre projet C#. Il est préférable d'avoir le projet C++/CLI et le projet C# dans la même solution pour pouvoir utiliser une référence de projet. Cliquez avec le bouton droit sur le projet C#, Ajouter une référence, onglet Projet.

+0

Vous voulez dire ajouter le projet C++ à C#? c'est un projet d'application de test avec les fichiers source inclus – Zigma

+0

La sortie est un exe dans le cas de testapp. Alors comment pourrais-je obtenir les métadonnées dans C# (demandant depuis que je n'ai aucune idée à ce sujet) – Zigma

+0

http://msdn.microsoft.com/en-us/library/vstudio/zfzh36t7.aspx –

Questions connexes