在32位和64位的access开发环境使用API函数

2019-08-20 17:39:00
tmtony8
原创
164

在32位的office中,调用了API函数,可以直接运行;但是移植到64位的环境中,会提示API 引用错误。

那么如何声明32位和64位的Access、Excel等VBA兼容的API函数呢


1.在64位环境声明中 Declare 语句应加上 PtrSafe 关键字
2.VBA7 及Win64的判断语句

由于Declare在64位和32位的开发环境下,对于代码的语法有所差异:
建议语法是将 Declare 语句与 PtrSafe 关键字一起使用。要使包括 PtrSafe 的 Declare 语句能同时在 32 位和 64 位平台上的 VBA7 开发环境中正确运行,必须先将 Declare 语句中所有需要存储 64 位数的数据类型(参数和返回值)更新为使用 LongLong(对于 64 位整数)或 LongPtr(对于指针和句柄)。为确保与 VBA 版本 6 和更早版本的向后兼容性,请使用下面的构造:

#If Vba7 Then
Declare PtrSafe Sub...
#Else
Declare Sub...
#EndIf



详细可参阅:

声明32位和64位Access、Excel等VBA兼容的API函数的方法



分享