Implementieren callback-C# - Funktionen für C++ - DLL

Ich Schreibe eine DLL-wrapper für meine C++ - Bibliothek zum Aufruf von C#. Dieser wrapper soll auch callback-Funktionen genannt, aus der Bibliothek und in C# implementiert. Diese Funktionen haben zum Beispiel std::vector<unsigned char> als output-Parameter. Ich weiß nicht, wie diese zu machen. Wie gebe ich einen buffer unbekannter Größe von C# zu C++ über eine callback-Funktion?

Nehmen wir mal dieses Beispiel

CallbackFunction FunctionImplementedInCSharp;

void FunctionCalledFromLib(const std::vector<unsigned char>& input, std::vector<unsigned char>& output)
{
    //Here FunctionImplementedInCSharp (C# delegate) should somehow be called
}

void RegisterFunction(CallbackFunction f)
{
    FunctionImplementedInCSharp = f;
}

Wie sollte CallbackFunction definiert werden und was ist der code, der in FunctionCalledFromLib?

Eines der Dinge, die dumm mich ist: wie lösche ich einen Puffer erstellt von C# in C++ - code?

InformationsquelleAutor Dialecticus | 2010-07-29
Schreibe einen Kommentar