当前位置: 首页 > 编程语言 > C#

从VBScript中调用.NETCOM对象分享

时间:2023-04-10 22:53:06 C#

从VBScript中调用.NETCOM对象我使用的是VS2008和Windows7。获取一个.NETC#类,它作为COM对象公开。[Guid("E5014B85-FCB2-4F0D-95EC-F741395A7923")][InterfaceType(ComInterfaceType.InterfaceIsDual)]publicinterfaceDSystem{[DispId(1610809354)]voidsetProperties(IDictionarypropertymap);}从VBScriptdSystem=CreateObject("MYCOMOBJECT")DimobjDictionarySetobjDictionary=CreateObject("System.Collections.Hashtable")objDictionary.Add"PROP1"、"abc"objDictionary.Add"PROP2"、"zyx"dSystem.setProperties(objDictionary)一切正常...但是,返回类型从void更改为bool[DispId(1610809354)]boolsetProperties(IDictionarypropertymap);和success=dSystem.setProperties(objDictionary)导致错误MicrosoftVBScriptRuntimeError"800a0005"InvalidprocedurecallorargumentThe.tlbfileseemstobeok[id(0x6003000a)]HRESULTsetProperties([in]IDictionary*propertymap,[出,retval]VARIANT_BOOL*pRetVal);我究竟做错了什么?谁能给我一个提示?对此不确定,但我似乎依稀记得,由于VBScript仅使用变体,因此您需要将方法参数声明为对象。尝试[DispId(1610809354)]boolsetProperties(objectpropertymap);并在方法体中转换为IDictionary。以上就是《C#学习教程:从VBScript调用.NETCOM对象》的全部内容分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: