工程属性的条件编译参数怎么设? 工程属性的条件编译参数怎么设?其语法是怎样的?请举例说明。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 (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 Thenstatements[#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吧,上面都有。 不好意思,还有一贴:用于条件编译的结构化代码要有条件地编译代码的某一部分,应将该部分代码封闭在 #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 开关与第一个常数之间不需要空格。命令行的常数声明将覆盖在“工程属性”对话框中键入的常数声明,但并不清除它们;在“工程属性”对话框中设置的参数对后续的编译保持有效。 如何动态修改网页ONMOUSEOVER的内容? vb读取TXT文字行显示在不确定Text1(1)数组 如何改变IE的代理地址? vb6如何处理unicode编码的字符呀? 两个简单的问题,希望前辈们给予我帮助和提示。。。 我用以下函数配置ODBC为何失败?? 高手救我!求access里的表名 winsock1.sendata.str1,为什么出错:126? 关于ADODB 用VB能否编出一个用来采集数据的软件? 请问在VB6中,如何将DATA控件和ACCESS2000数据库直接关联用啊? 如何用代码写一个text,放到form上,以下代码有错~
用来定义 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吧,上面都有。
要有条件地编译代码的某一部分,应将该部分代码封闭在 #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 开关与第一个常数之间不需要空格。命令行的常数声明将覆盖在“工程属性”对话框中键入的常数声明,但并不清除它们;在“工程属性”对话框中设置的参数对后续的编译保持有效。