zu verwenden Ich muss meinen C++ Code in C# Anwendung benutzen. Ich dachte über Pinvoke nach, aber ich bin verwirrt mit dem Ansatz, den ich für die Erstellung von DLL aus meiner C++ App nehmen sollte. Grundsätzlich ist meine C++ App eine main
Funktion, die eine Endlosschleife der Datenverarbeitung ausführt und ich weiß nicht, wie ich so etwas in dll exportieren und es von C# aufrufen kann.Wie man Funktion für dll (C++) von der Hauptfunktion herstellt, um in C#
Ich versuchte, meine main
Funktion im Standalone-init
Funktion für DLL und rufen sie von C# neu zu schreiben, sondern weil es eine Endlos-Schleife dazu kam es nicht von der Funktion mit return
auf den Punkt. Und ich weiß nicht, wie ich meinen Datenpuffer irgendwann von Endlosschleife zu meiner C# -App bekomme.
Was ich zur Zeit getan:
// myDLL.cpp
int __stdcall OpenRTSP(char url, char progname)
{
TaskScheduler* scheduler = BasicTaskScheduler::createNew();
UsageEnvironment* env = BasicUsageEnvironment::createNew(*scheduler);
if (openURL(*env, &progname, &url) < 0)
{
return -1;
}
// All subsequent activity takes place within the event loop:
// This function call does not return, unless programm closes.
env->taskScheduler().doEventLoop(&eventLoopWatchVariable);
return 0;
}
// myDLL.h
__declspec(dllexport) int __stdcall OpenRTSP(char url, char progname);
Ich weiß nicht, wie OpenRTSP von C# nennen, weil sie nie von diesem func zurückkehren und wie eine Funktion zu schreiben, die mir einen Datenpuffer zurück von der Endlosschleife?
Nach einiger Arbeit habe ich festgestellt, dass Standalone-Prozess ist viel schneller als 'dllimport' Weg. Danke für die Hilfe. Außerdem, um Dinge für andere Leute zu klären - Ich habe es mit Pipe-Datentransfer zwischen C++ und C# getestet. – Aleksey