工程属性的条件编译参数怎么设?其语法是怎样的?请举例说明。

解决方案 »

  1.   

    (1)#Const 指令
    用来定义 Visual Basic 的条件编译常数。(2)VB已有的编译常数
    在 16 位开发平台上,编译常数定义如下:
    Win16 True 指出开发环境是 16 位。 
    Win32 False 指出开发环境不是 32 位。
     
    在 32 位开发平台上,编译常数定义如下:
    Win16 False 指出开发环境不是 16 位。 
    Win32 True 指出开发环境是 32 位。 (3)#If...Then...#Else 指令
    条件编译已选择的 Visual Basic 代码块。
    语法:
    #If expression Then
    statements
    [#ElseIf expression-n Then
    [elseifstatements]]
    [#Else
    [elsestatements]]
    #End If(4)#If...Then...#Else 指令示例
    本示例在 #If...Then...#Else构造中引用条件式编译器常数,来决定编译那部分语句。' 如果 Mac 常数为 true,则编译 #If后面的语句。
    #If Mac Then 
       '. 将 Mac 语句写在此处。
       '.
       '.
    ' 否则,如果是 32 位窗口程序,则编译这个语句:
    #ElseIf Win32 Then   
       '. 将 32 位窗口程序语句写在此处。
       '.
       '.
    ' 再否则,则编译以下语句:
    #Else
       '. 将其他作业平台适用的语句写在此处。
       '.
       '.
    #End If看看MSDN吧,上面都有。
      

  2.   

    不好意思,还有一贴:用于条件编译的结构化代码
    要有条件地编译代码的某一部分,应将该部分代码封闭在 #If...Then 和 #EndIf 语句之间,使用一个布尔常数作为分支检测。要编译被封闭的代码,可将该布尔常数设置为 -1 (True)。例如,要从同一份源代码创建同一个应用程序的法语版本和德语版本,可使用预定义常数 conFrenchVersion 和 conGermanVersion 将与平台有关的代码部分嵌入 #If...Then 语句之间。#If conFrenchVersion Then
       '<适用于法语版本的代码>。
    #ElseIf conGermanVersion then   
       '<适用于德语版本的代码>。
    #Else
       '<适用于其它版本的代码>。
    #End If如果在编译时常数 conFrenchVersion 的数值被设置为 True,则适用于法语的代码将被编译。如果常数 conGermanVersion 的数值被设置为 True,则编译器使用适用于德语版本的代码。声明条件编译常数
    设置条件编译常数有三种方法:在“工程属性”对话框的“制作”选项卡的“条件编译参数”字段设置条件编译常数、在命令行或在代码中设置条件编译常数。条件编译常数有特别的作用范围,不能从标准代码中访问。如何设置条件编译常数可能取决于希望常数具有怎样的作用范围。如何设置 范围 
    “工程属性”对话框 Public 作用于工程中的所有模块 
    命令行 Public 作用于工程中的所有模块 
    代码中的 #Const 语句 Private 仅作用于声明该常数的模块 
    在“工程属性”对话框中设置常数
    在创建可执行文件前,从“工程”菜单选择“工程属性”,单击“工程属性”对话框中的“生成”选项卡,在“条件编译参数”字段中键入一个参数,例如 conFrenchVersion = –1(如果希望将应用程序编译成法语版本的话)。当程序被编译时,该参数将满足 #If...Then 的条件,处于 #If...Then 和 #EndIf 之间的代码将包含进编译后的程序中。如果是包含一个或多个 #ElseIf 语句的复杂 #If...Then 语句,则需要设置另外的常数。可参照以下示例通过冒号间隔来设置多个常数:conFrenchVersion=-1:conANSI=0在命令行设置常数
    如果要从命令行启动编译,可以使用 /d 开关键入条件编译常数,如下所示:vb.exe /make MyProj.vbp /d conFrenchVersion=–1:conANSI=0在 /d 开关与第一个常数之间不需要空格。命令行的常数声明将覆盖在“工程属性”对话框中键入的常数声明,但并不清除它们;在“工程属性”对话框中设置的参数对后续的编译保持有效。