CAD VBA调用VB编译的DLL问题
发布网友
发布时间:2022-04-20 17:33
我来回答
共3个回答
热心网友
时间:2023-07-20 20:17
正常情况下,建议还是使用32位的office。但在特殊的情况下,你必须使用64位office。
那么64位的VBA如何调用32位的dll呢?
答案只有一个:用ActiveX.exe进行包装。在vb6中新建一个activeX.exe工程。
写下如下的代码:
Public Function CreateInstance(ProgID As String) As Object
Set CreateInstance = CreateObject(ProgID)
End Function
进行编译。
64位的VBA代码调用:
Set MyObj32 = CreateObject("MyActiveXExe.cCOM32").CreateInstance("SomeLib.SomeClass")
这样在64位vba中就可以使用32位的activeX.dll的类了。
注意:1、activeX.exe在使用中必须注册。32位的activeX.dll也得注册。
2、这样的调用dll,性能会下降得很厉害,因为这是两个进程间的调用。
3、调试会增加一些麻烦。
热心网友
时间:2023-07-20 20:18
参考 回首时那短短的一瞬
热心网友
时间:2023-07-20 20:18
安装程序的时候,有没有注册你的 DLL
如果可能的话,安装到系统目录下面