注册 登录
Office中国论坛/Access中国论坛 返回首页

ganlinlao的个人空间 http://www.office-cn.net/?230471 [收藏] [复制] [分享] [RSS]

日志

64位VBA如何调用32位的ActiveX.dll

热度 1已有 3427 次阅读2015-11-7 11:56 |个人分类:vb入门| 64位VBA, 32位dll

正常情况下,建议还是使用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、调试会增加一些麻烦。

发表评论 评论 (1 个评论)

回复 tmtony 2015-11-10 23:55
是的,我也是使用类似的方法 ,不会对于有界面的activex ocx就有不少麻烦,需要做很多额外的工作

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-26 15:11 , Processed in 0.072517 second(s), 18 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部