我使用VS 2008和Windows 7.
得到了一個作爲COM對象公開的.NET C#類。從VBScript調用.NET COM對象
[Guid("E5014B85-FCB2-4F0D-95EC-F741395A7923")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface DSystem
{
[DispId(1610809354)]
void setProperties(IDictionary propertymap);
}
COM對象從一個VBScript
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)
一切所謂的正常工作......但是,從 一個void
返回類型更改爲bool
[DispId(1610809354)]
bool setProperties(IDictionary propertymap);
和
success = dSystem.setProperties(objDictionary)
導致錯誤
Microsoft VBScript運行時錯誤 '800a0005'
無效的過程調用或參數
.tlb文件似乎是確定
[id(0x6003000a)]
HRESULT setProperties(
[in] IDictionary* propertymap,
[out, retval] VARIANT_BOOL* pRetVal);
我究竟做錯了什麼?
有人可以給我一個提示嗎?
這個新手問題很好。 – sharptooth 2011-02-03 11:27:33