如何将c#变量声明为COM对象的参数

时间:2019-06-07 06:07:50

标签: c# com

我有一个导入到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#,但没有帮助。

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方法。

我确实必须将其声明为对象,但我还必须为其分配一个字符串,大概是要设置其类型。得到结果后,可以将其分配回字符串以获取值。