我创建了一个类库项目,其中包含以下代码和设置:
using System.Runtime.InteropServices;
namespace MyDll
{
[ComVisible(true)]
public class TestClass
{
[ComVisible(true)]
public string[] SomeFunc(string path)
{
return new[] {"1","7","9"};
}
}
}
同样在“属性/应用程序/程序集信息”中检查“使程序集COM可见”,并在“属性/生成”中检查“注册COM互操作性”。
在我的VB脚本中,我遇到了异常:
"0x800a01ad - Microsoft VBScript运行时错误: ActiveX组件无法创建对象:'MyDll.TestClass'"
当尝试从dll创建对象时。
Dim result
Dim myObj
Set myObj = CreateObject("MyDll.TestClass")
Set result= myObj.SomeFunc("a")
regsvr32.exe
注册了实际的DLL(该建议适用于服务器端和客户端的VBScript)? - user692942regasm.exe
正在执行regsvr32.exe
的工作,甚至自己调用它,那么哪一个正在被调用呢?*(请参阅该链接以了解32位和64位注册表位置的详细信息,以及使用错误的regsvr32.exe
可能会影响它最终所在的位置)*。 - user692942