0

我需要使用实现一个固定大小的数组参数的方法公开一个 COM 接口。数组大小是固定的,因为使用者基于您必须声明数组大小的技术。所以我可以做这样的事情

[Guid("2AE7C342-89ED-492B-B9AA-92A778332000")]
public interface _DocSolutionsClassic

{
    [DispId(1)]
    void Execute( string[] InputParams);
}

它对我有用,但消费者存在不同的尺寸错误。

我想写这样的东西

[DispId(1)]
void Execute( string[50] InputParams);

或这个

[DispId(1)]
string[] InputParams = new string[50];
void Execute(string[] InputParams);

但是 Vstudio 2010 给我一个错误...

4

1 回答 1

1

也许这会有所帮助:

IDL 代码片段:

[id(1), helpstring("method foobar")] HRESULT foobar( BSTR * bstrs, ULONG size );

这样您就可以发送任意数量的字符串。'size' 参数实际上是 'bstrs' 指向的字符串的数量。

注意:使用SysAllocString()/SysFreeString()进行字符串分配/解除分配(或您的环境中的一些等效项)。

于 2011-11-16T12:11:58.747 回答