2016-03-29 24 views
1

Meine aktuelle Anforderung ist einige Methoden von C# dll in C++ - Konsole-Anwendung aufrufen. Ich habe einen Beispiel-C# -Konsolenanwendungscode, der die Methoden von der C# -Dll aufruft.Aufruf C# DLL in C++

C# dll wurde als Referenz in das C# -Konsolenanwendungsprojekt hinzugefügt.

using CSharp; 

void fn() 
{ 
string retVal; 
CSharpApi obj = new CSharpApi("Something"); 
retVal = obj.Invoke("Something"); 
obj.Dispose(); 
.... 
.... 
} 

Die Definition von CSharpApi

namespace CSharp 
{ 
    public class CSharpApi : IDisposable 
    { 
     public CSharpApi(); 
     public CSharpApi(string param1); 
     public string Invoke(string param1); 
     public void Dispose(); 
    } 
} 

Ich brauche eine C++ Konsolenanwendung entspricht die oben C# Konsolenanwendung zu schreiben, aber nicht sicher, wie es zu erreichen. Ist es möglich, C# DLL-Methoden mit LoadLibrary und GetProcAddress APIs aufzurufen? Ich wäre sehr dankbar, wenn Sie mir ein paar Beispiele geben könnten.

+2

Warum nicht eine C++/CLI Managed .NET-Anwendung erstellen? –

+1

Obwohl ich nicht wusste, dass dies möglich ist, gibt es anscheinend ein [Tutorial von Microsoft] (https://support.microsoft.com/en-us/kb/828736), das das Thema abdeckt. – Codor

Antwort

0

Wie Joachim in seinem Kommentar anspielt, ist der einfachste Weg, es zu verwenden, C++/CLI managed .NET aplication, es gibt Ihnen das Beste aus beiden Welten, Sie können immer noch den Großteil Ihres Codes in nicht verwalteter Weise schreiben, und Sie haben eine relativ einfache Möglichkeit, auch verwalteten Code aufzurufen.