- EXE '
A
' ist in C# geschrieben. 'A
' ruft die DLL 'B
' auf, ebenfalls in C# geschrieben. - Die DLL '
B
' ruftCreateProcess
auf, um eine zweite EXE 'C
' zu starten. 'C
' ist in nativem C++, Win32 geschrieben. - ‚
C
‘ muss in der Lage sein, eine Funktion in DLL ‚B
‘ zu nennen, weil ‚B
‘ kennt einen Griff, mit dem er Informationen von ‚A
‘ erhalten. Das Handle wird als globale Variable innerhalbB
gespeichert.
Ich weiß, wie Sie eine verwaltete C# -DLL von einer systemeigenen C++ - EXE aufrufen.Kann ein EXE-Aufruf in die DLL, die es gestartet hat?
Meine Frage ist: Wie können wir C
Rückruf in B
machen? Wie findet C
finden B
?
Ich würde eine Named Pipe verwenden, geben Sie einen GUID-Namen und übergeben Sie den Namen als Befehlszeilenargument C –
'C' muss eine ausführbare Datei sein, weil es eine Anwendung ist, die bereits geschrieben wurde, viele KLOCs Code. Es ist eine interaktive Grafik-App, die eng an die Windows-Nachrichtenschleife gebunden ist. Es würde viele Monate dauern, bis sie zu einer DLL wird. Es ist machbar, aber ich möchte Zeit sparen. – Pierre
Warum in aller Welt würde dies abgelehnt werden? Würde jemand, der eine Absage macht, bitte die Höflichkeit haben, zu erklären, warum er sich dazu entschieden hat? Der Vorschlag von Scott Chamberlain, Named Pipes zu verwenden, ist hervorragend und könnte mir die Lösung liefern, nach der ich suche. – Pierre