Wie nenne ich diese Delphi -Funktion von C#?
-
24-10-2019 - |
Frage
Ich habe Probleme, eine Delphi -Funktion von C# zu rufen (versuchte, geschütztes Speicher zu lesen oder zu schreiben), und fragte sich, wie die richtige Art, die Methode aufzurufen, sein sollte. Die Delphi -Funktionssignatur ist wie folgt:
procedure methodToCall(
aFirstParameter: Widestring;
var aSecondParameter: Widestring
); stdcall;
Was ist die richtige Art, diese Methode von C#zu bezeichnen?
Lösung
Die Widestring ist mit COM BSTR kompatibel, und so sollte der .Net -Marshaller in der Lage sein, ihn ziemlich glücklich zu konsumieren:
[DllImport(@"test.dll")]
private static extern void methodToCall(
[MarshalAs(UnmanagedType.BStr)]
string aFirstParameter,
[MarshalAs(UnmanagedType.BStr)]
ref string aSecondParameter
);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow