私は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オブジェクトはすべてがbool
[DispId(1610809354)]
bool setProperties(IDictionary propertymap);
と
success = dSystem.setProperties(objDictionary)
から
void
からの戻り値の型の変更を正常に動作します...しかし、 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)
から呼び出されます
はエラーになり
MicrosoftのVBScriptランタイムエラー '800a0005'
無効なプロシージャ呼び出しまたは引数が
.tlbファイルはOKのようです
[id(0x6003000a)]
HRESULT setProperties(
[in] IDictionary* propertymap,
[out, retval] VARIANT_BOOL* pRetVal);
何が間違っているのですか?
誰でも私にヒントを与えることができますか?
この初心者の質問はよく聞かれます。 – sharptooth