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)
모두에서 호출하는 것은 bool
[DispId(1610809354)]
bool setProperties(IDictionary propertymap);
및
success = dSystem.setProperties(objDictionary)
-
void
에서 반환 유형 변화, 잘 작동 ...하지만 ,451,515,
오류를 발생
Microsoft VBScript 런타임 오류 '800a0005'
잘못된 프로 시저 호출 또는 인수가
.TLB 파일이 확인 될 것으로 보인다
[id(0x6003000a)]
HRESULT setProperties(
[in] IDictionary* propertymap,
[out, retval] VARIANT_BOOL* pRetVal);
내가 도대체 뭘 잘못하고있는 겁니까?
아무도 내게 힌트를 줄 수 있습니까?
이 새내기 질문은 질문이 높습니다. – sharptooth