C#からこのDelphi関数を呼び出す方法は?
-
24-10-2019 - |
質問
C#からDelphi関数を呼び出すのに問題があります(保護されたメモリの読み取りまたは書き込みを試みました)、メソッドを呼び出す正しい方法はどうあるべきか疑問に思っていました。 Delphi関数の署名は次のとおりです。
procedure methodToCall(
aFirstParameter: Widestring;
var aSecondParameter: Widestring
); stdcall;
C#からこのメソッドを呼び出す正しい方法は何ですか?
解決
WideStringはCOM BSTRと互換性があるため、.NET Marshallerはそれを非常に幸せに消費できるはずです。
[DllImport(@"test.dll")]
private static extern void methodToCall(
[MarshalAs(UnmanagedType.BStr)]
string aFirstParameter,
[MarshalAs(UnmanagedType.BStr)]
ref string aSecondParameter
);
所属していません StackOverflow