Как назвать эту функцию Delphi из C#?
-
24-10-2019 - |
Вопрос
У меня проблемы, вызывая функцию Delphi из C# (попытка прочитать или написать защищенную память), и мне было интересно, каким должен быть правильный способ вызова метода. Подпись функции Delphi выглядит следующим образом:
procedure methodToCall(
aFirstParameter: Widestring;
var aSecondParameter: Widestring
); stdcall;
Как правильный способ назвать этот метод из C#?
Решение
Видестра совместимо с Com BSTR, и поэтому маршаллер .NET должен быть в состоянии потреблять его довольно счастливо:
[DllImport(@"test.dll")]
private static extern void methodToCall(
[MarshalAs(UnmanagedType.BStr)]
string aFirstParameter,
[MarshalAs(UnmanagedType.BStr)]
ref string aSecondParameter
);
Не связан с StackOverflow