怎样写可以实现由一个变量控制一段代码是否被编译呢?是不是什么 #if 之类的,有谁知道详细的写法吗?

解决方案 »

  1.   

    条件编译#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
      

  2.   

    如何使用编写的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