我正在尝试创建一个简单的VB6 ActiveX exe并从Excel中调用它。
在VB6中,我使用所有默认设置创建一个名为BigTrev的ActiveX DLL项目。
我创建了一个名为Trev的MultiUse类,其中包含一个不包含代码的方法
Public Sub HelloWorld()
End Sub
我创建了一个DLL并从命令行注册它(VB6也为我注册了,但我还是使用了cmd来完成它。)
然后它Excel我在新工作簿中创建对我的DLL的引用。它显然已被注册,因为Intellisense了解Trev和HelloWorld。
Sub cats()
Dim derek As BigTrev.Trev
Set derek = New BigTrev.Trev
derek.HelloWorld
End Sub
它在Excel中编译,当我单步执行它时,它在第二行中失败,即Set 1。错误消息是“ActiveX组件无法创建对象”。
为什么呢?很多年前,当VB6被广泛使用时,我已经完成了这个或类似的负载,我现在使用的是Windows 7,而且我是我的盒子上的管理员。
答案 0 :(得分:0)
我建议使用相关的regsvr32.exe注册DLL(如果这是你选择的方向,则为EXE)。在这种情况下,如果您要在64位环境中注册32位DLL,请使用隐藏在c:\ windows \ syswow64中的DLL。
可悲的是,我没有Excel(震惊,恐怖),而我所拥有的电子表格(LibreOffice)是32位。