作者:iamlaosong
我的一个工具只能在32位环境下使用,因为64位环境下API声明略有不同。为了工具的兼容性,可以采用条件编译#If…Then…#Else语句。注意,没有“#”号的是正常条件语句,有“#”号的是条件编译语句。条件编译语句中的条件判断会用到编译常数,除了系统自带的外,也可以自己用#const定义。
1、常数定义语句:
2、条件编译语句:
3、测试代码:
Sub ttt()
#If VBA7 Then
MsgBox "VBA7"
#If Win64 Then
MsgBox "win64"
#Else
MsgBox "win32"
#End If
#Else
MsgBox "vba6"
#End If
End Sub
之所以用条件编译,是因为一个环境下的语句在另一个环境下可能会报错,用条件编译就没这个问题了。下面的框架就是用来判断环境是否为VBA7和Win64环境,如果是,API声明前面加上PtrSafe关键字。
#If VBA7 And Win64 Then
Declare PtrSafe Function ......
......
#Else
Declare Function ......
......
#End If