我有一个导入到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#,但没有帮助。
答案 0 :(得分:0)
我终于找到了解决方法。
我确实必须将其声明为对象,但我还必须为其分配一个字符串,大概是要设置其类型。得到结果后,可以将其分配回字符串以获取值。