我正在使用我通过API访问的旧COM库。似乎无法弄清楚如何使用具有以下签名的方法:
aCOMlibrary.AddSearchType(aCOMlibrary.enum.whatever, ref object[])
文档暗示可以通过以下两种方式之一使用:
'Method 1
object.AddSearchType ENUM_VALUE
'Method 2
object.AddSearchType ENUM_VALUE_1, ENUM_VALUE_2, ... ENUM_VALUE_n
我正在尝试在C#中执行方法1:
screen.AddSearchType(enum.value);
但是视觉工作室抱怨说我提供了无效的论据。所以,为了试图欺骗VS,我认为这可能有用:
screen.AddSearchType(enum.value, null);
此应用程序编译并运行,但此行抛出了一个关于for-loop未初始化的异常。
感到沮丧,我决定从文档中尝试“方法2”:
screen.AddSearchType(enum.ENUM_VALUE_1, enum.ENUM_VALUE_2);
但是在构建过程中抛出以下内容:
参数2:无法从'aCOMlibrary.enum'转换为'ref object []'
我错过了什么?我怎样才能哄这个笨拙的旧COM库来做我的出价?
答案 0 :(得分:0)
原来我需要通过它
new object[1] {enum.ENUM_VALUE_2}
马特的评论让我大部分时间,但他的建议导致:
ref或out参数必须是可赋值变量
所以我放弃了ref
并编译了。谢谢你的帮助!