怎样写可以实现由一个变量控制一段代码是否被编译呢?

leoxue 2003-10-25 11:20:27
怎样写可以实现由一个变量控制一段代码是否被编译呢?

是不是什么 #if 之类的,有谁知道详细的写法吗?
...全文
28 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainstormmaster 2003-10-26
  • 打赏
  • 举报
回复
如何使用编写的VB程序可同时适用于16位和32位环境

随着WIN95等32位操作系统的广泛使用,我们编写的VB程序可能有时需要运行在32位环境中,也可能需要适应于原来的WIN3.X环境,为了使程序能适用于两种环境,我产不必反复改写程序,可以利用条件编译语句,在不同的环境中笪新编译一遍就可以了。

VB提供了条件编译语句,可根据条件常量的值决定哪些语句不编译,这样可根据条件来决定不同版本下编译相应版本的程序语句。语法是:
#If...Then...Else
#End if

条件常量定义语句为:#const常量=值,此常量的声明必须位于窗体或模块的顶部,以便下面的所有程序都可以使用它,在不同的环境下改变一下常量值就可以了。另外,在Project选项中或者在VB4.0的高级设置中也直接在命令行参数选项中给定常量值。

VB不同版本如,VB 3.0和VB 4.0一般在API函数的调用上区别较大,其余的区别不是太大,所以当程序中需要用到API函数时常用条件编译语句。比如,我们如果在程序中需要用到API函数SystemParametersInfo时,可以编写这样的条件编译语句:
#if win=32 then
Declare Function SystemParametersInfo Lib "user32" Alias-
"SystemParametersInfoA"(ByVal uAction As Long,ByVal uParam As Long,-ByVal lpvParam As Any,ByVal fuWinIni As Long)As Long
else
Declare Function SystemParametersInfo% Lib"user"(ByVal Action As Iteger,-ByVal Param As Integer,Retured As Any,ByVal Changeln As Integer)
#end if
Dublue 2003-10-25
  • 打赏
  • 举报
回复
up
yufenfeila 2003-10-25
  • 打赏
  • 举报
回复
条件编译

#If 测试编译常量表达式 Then
语句 1
#Else
语句 2
#End If

例子

#Const DebugFlag = 1 '设置编译常量
Private Sub Command1_Click()
#If DebugFlag = 1 Then
MsgBox "共享版本"
#Else
MsgBox "正式版本"
#End If
End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧