2
我正在开发一个C#库,我需要从COBOL(非托管)代码调用。所以我正在使用COM互操作来达到这些目的。COM互操作:可变数量的参数
我创建了一个图层“ModuleLanucher”来调解通信。 我已经通过这些命令注册了这个ModuleLanucher库:
regasm ModuleLanucher.dll /codebase
TLBEXP Modulelanucher.dll
一切工作正常,如果我有参数在函数foo的具体数量。 (在下面提到)
不幸的是我的函数foo需要可变数量的参数。 这是我的代码素描:
namespace NMSPC
{
class ModuleLanucher
{
void foo(string moduleName, params object[] args)
{
//call some dlls with args as parameteres
}
}
}
从COBOL代码我打电话COM函数foo:
VCCOMServer is class "$OLE$NMSPC.ModuleLanucher"
invoke VCCOMServer "new" returning anInstance
invoke anInstance "foo" using MODULENAME, PARAM01, PARAM02, PARAM03, PARAM04
当我尝试从这个COBOL代码调用foo方法,我得到这个错误:
异常65538未被类oleexceptionmanager困住。 描述:“OLE参数计数不匹配” (8002000E):参数的无效数量
具有可变数量参数的COM对象函数甚至可能吗?
谢谢任何建议