oɔɯ*_*ɯǝɹ 3 c# delphi pinvoke marshalling widestring
我在从C#调用delphi函数时遇到问题(尝试读取或写入受保护的内存),并且想知道调用该方法的正确方法应该是什么.Delphi函数签名如下:
procedure methodToCall(
aFirstParameter: Widestring;
var aSecondParameter: Widestring
); stdcall;
Run Code Online (Sandbox Code Playgroud)
从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
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2208 次 |
| 最近记录: |