注冊 登錄
Office中國論壇/Access中國論壇 返回首頁

ganlinlao的個人空間 http://ctxi.cn/?230471 [收藏] [復(fù)制] [分享] [RSS]

日志

64位VBA如何調(diào)用32位的ActiveX.dll

熱度 1已有 3612 次閱讀2015-11-7 11:56 |個人分類:vb入門| 64位VBA, 32位dll

正常情況下,建議還是使用32位的office。但在特殊的情況下,你必須使用64位office。
那么64位的VBA如何調(diào)用32位的dll呢?
答案只有一個:用ActiveX.exe進行包裝。在vb6中新建一個activeX.exe工程。
寫下如下的代碼:
Public Function CreateInstance(ProgID As String) As Object
Set CreateInstance = CreateObject(ProgID)
End Function
進行編譯。
64位的VBA代碼調(diào)用:
Set MyObj32 = CreateObject("MyActiveXExe.cCOM32").CreateInstance("SomeLib.SomeClass")
這樣在64位vba中就可以使用32位的activeX.dll的類了。
注意:1、activeX.exe在使用中必須注冊。32位的activeX.dll也得注冊。
          2、這樣的調(diào)用dll,性能會下降得很厲害,因為這是兩個進程間的調(diào)用。
          3、調(diào)試會增加一些麻煩。

發(fā)表評論 評論 (1 個評論)

回復(fù) tmtony 2015-11-10 23:55
是的,我也是使用類似的方法 ,不會對于有界面的activex ocx就有不少麻煩,需要做很多額外的工作

facelist doodle 涂鴉板

您需要登錄后才可以評論 登錄 | 注冊

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2024-10-23 08:25 , Processed in 0.086847 second(s), 18 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部