c# – 从VBScript调用.NET COM对象
发布时间:2020-12-15 07:47:08 所属栏目:百科 来源:网络整理
导读:我使用的是VS 2008和 Windows 7. 得到一个.NET C#类,它作为COM对象公开. [Guid("E5014B85-FCB2-4F0D-95EC-F741395A7923")][InterfaceType(ComInterfaceType.InterfaceIsDual)]public interface DSystem{ [DispId(1610809354)] void setProperties(IDictionar
我使用的是VS 2008和
Windows 7.
得到一个.NET C#类,它作为COM对象公开. [Guid("E5014B85-FCB2-4F0D-95EC-F741395A7923")] [InterfaceType(ComInterfaceType.InterfaceIsDual)] public interface DSystem { [DispId(1610809354)] void setProperties(IDictionary propertymap); } 从VBScript调用COM对象 dim dSystem set dSystem = CreateObject("MYCOMOBJECT") Dim objDictionary Set objDictionary = CreateObject("System.Collections.Hashtable") objDictionary.Add "PROP1","abc" objDictionary.Add "PROP2","zyx" dSystem.setProperties(objDictionary) 一切都很好……但是, [DispId(1610809354)] bool setProperties(IDictionary propertymap); 和 success = dSystem.setProperties(objDictionary) 导致错误
.tlb文件似乎没问题 [id(0x6003000a)] HRESULT setProperties( [in] IDictionary* propertymap,[out,retval] VARIANT_BOOL* pRetVal); 我究竟做错了什么? 解决方法
不确定这一点,但我似乎依稀记得因为VBScript只使用Variants,你需要将你的方法参数声明为对象.
尝试 [DispId(1610809354)] bool setProperties(object propertymap); 并转换为方法体内的IDictionary. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |