2010-11-15 16 views
3

J'ai du code en C# que je veux utiliser dans un autre projet (codé en C++). D'après ce que j'ai recherché, j'ai besoin de créer un .lib mais MSVS crée seulement .dll (je pense ..). Je pense qu'il est possible d'utiliser le fichier .dll en utilisant LoadLibrary() sur C++ mais ne semble pas très sympathique.Comment utiliser le code C# dans le projet C++

1 - Puis-je créer le fichier .lib dans MSVS? Sinon, comment puis-je le créer.

2 - Quelle est la meilleure façon d'intégrer le code? Par le fichier .lib ou en utilisant .dll + LoadLibrary()?

Répondre

1

Est-il géré C++? Si oui, vous pouvez directement ajouter une référence à la DLL C# et l'utiliser.

+0

Je suppose que ce n'est pas le cas. Mes classes devraient avoir "__gc class A" non? Je mets "using ", et l'option CLR et le compilateur dit: veuillez spécifier le chemin de recherche d'assembly en utilisant/AI ou en définissant la variable d'environnement LIBPATH " J'ai le WordsExtraction.dll dans mon dossier Debug – joaodavidmateus

1

Une possibilité est pour rendre votre code C# compatible COM géré. Utilisez ensuite les API standard COM (QueryInterface etc) pour appeler le code C# COM.

L'échantillon CodeProject peut être utile http://www.codeproject.com/KB/cs/ManagedCOM.aspx

3

L'option la plus facile, honnêtement, est d'utiliser C++/CLI. Cela vous permet d'utiliser les deux systèmes objet (.NET et C++ traditionnel avec sa bibliothèque de modèles standard).