【问题标题】:how to declare a c# variable to be a parameter to a COM object如何将 c# 变量声明为 COM 对象的参数
【发布时间】: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。编译器到底说了什么?

标签: c# com


【解决方案1】:

我终于找到了解决办法。

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

【讨论】:

    猜你喜欢
    • 2021-11-30
    • 2018-10-08
    • 2011-04-18
    • 2010-12-22
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多