【发布时间】:2019-06-07 06:07:50
【问题描述】:
我有一个已导入 C# 的 COM 库,它需要使用 ref 变量调用函数,但我无法弄清楚如何声明编译器将接受的变量。
我查看了生成的 c# 接口代码并尝试了其他声明的集合,但没有一个有效。
我需要调用的函数在c#导入文件中声明为
[DispId(1610809355)]
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
bool brReadnext([MarshalAs(UnmanagedType.Struct), In, Out, Optional] ref object sItemId);
在 Delphi 中使用了与声明 OleVariant 相同的调用(如果有帮助的话)。
只是不能让它被编译器接受。
我看过这个帖子Marshaling Delphi 5 OleVariant to C#,但没有帮助。
【问题讨论】:
-
应该是
object,传递给函数时,传递ref。编译器到底说了什么?