我需要使用实现一个固定大小数组参数的方法公开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给我一个错误......
答案 0 :(得分:1)
也许这可能会有所帮助:
IDL代码段:
[id(1), helpstring("method foobar")] HRESULT foobar( BSTR * bstrs, ULONG size );
这样您就可以发送任意数量的字符串。 'size'参数实际上是'bstrs'指向的字符串数。
注意:
使用SysAllocString()
/ SysFreeString()
进行字符串分配/取消分配(或您环境中的某些等效项)。