Я могу подумать о трех возможных причинах этой проблемы:
Причина 1: неверное имя, используемое в CreateObject:
Я предполагаю, что ваш код VBScript вызывает что-то вродеthis:
Set obj = CreateObject("MyLibrary.AComVisibleClass")
Если это правильно, откройте редактор реестра и проверьте, содержит ли ключ HKEY_CLASSES_ROOT
подраздел с именем MyLibrary.AComVisibleClass
.Если это не так, то имя вашей библиотеки может отличаться от ожидаемого.Найдите в реестре AComVisibleClass
, чтобы найти правильное имя библиотеки.
Причина 2: 64-разрядные проблемы:
Если проблема возникает в 64-разрядной операционной системесистема может быть вызвана тем, что ваш VBScript работает как 32-разрядный процесс, а C # COM DLL - 64-разрядная или наоборот.
Причина 3: неправильное имя функции:
Возможно, вы используете неверное имя функции в сценарии, например obj.SomeFnc(1)
вместо obj.SomeFunc(1)
, или выбранное вами имя функции является зарезервированным ключевым словом в VBScript или содержит необычные символы.