条件编译的意思,我想,是不是指可以由VB6自动改变这个参数,或者在编译的时候从工程属性对话框的“条件编译参数”框中填写fDebug = 0之类的参数?
我总觉得不应该是手动在代码里面赋值啊。
换句话说,我不知道,在编译的时候,工程属性对话框的“条件编译参数”框到底有什么用?
我总觉得不应该是手动在代码里面赋值啊。
换句话说,我不知道,在编译的时候,工程属性对话框的“条件编译参数”框到底有什么用?
解决方案 »
- 路过的救命啊 —— webbrowser 控件 网页元素click 方法的问题
- 请教:文本框中数据处理,在每行数据的末尾加上一个字母M
- 问一下 关于双系统下system32中文件的调用方法?
- 在VB中为什么"6E"不能存放在一个BYTE变量中呢?
- 在vb里画个漂亮的曲线图,大家有何高见!!!
- 怎么将ADO梆到VSFLEXGRID中,谢谢,急~~
- VB 怎么调入并执行写好的SQL文件.
- 请教sqlserver7中大量数据查询的问题
- 那里能找到选择多项的Combox控件!
- 有谁知道怎么用程序锁定键盘?不让键盘可用。谢谢!
- 一个管理财务软件的开发,有一个需求,不知道开发费用要多少!也不知道这个贴子改在那里贴就放到了这里!有兴趣到里面看看~~
- 如何在SQL服務器端將一個數值轉換格式為 ###,###,###.###
constname 必要;Variant (String)。常数;名称要遵守变量命名的约定。
expression 必要。文字、其他的条件编译常数或包含除了 Is 以外的算术或逻辑运算符的任意组合。
说明条件编译常数在其出现的模块中总是 Private。不可能利用 #Const 指令建立 Public 编译常数。Public 编译常数只能在用户接口中建立。在 expression 中只能使用编译常数及文字。使用一个用 Const 定义的标准常数,或者使用一个未定义的常数,都会导致错误发生。反之,用 #Const 关键字定义的常数也只能用于条件编译。不管条件编译常数在程序中的位置如何,都总是在模块级别中进行计算。===================================================
本示例使用 #Const 伪指令声明条件式编译器常数,以便在 #If...#Else...#End If 构造中使用。#Const DebugVersion = 1 ' DebugVersion 常数在 #If 块中计为 TRUE 。
pbDebug = False代码中有段程序:
On error goto pE:
.....
pE:
#if pbDebug =True Then
stop
resume '返回出错点
#Else
msgbox "程序运行时出错"
#endif则系统将此段代码等同于:
On error goto pE:
.....
pE:
msgbox "程序运行时出错"
两位朋友:我的全部代码如下:
Option Explicit
#Const fDebug = True
Sub TestDebug()
#If fDebug Then
MsgBox "Code to run during 编译之前!"
#Else
MsgBox "Code to run during 编译之后!"
#End If
End SubPrivate Sub Command1_Click()
TestDebug
End Sub我实验的结果是:直接运行的时候,提示"Code to run during 编译之前!"
如果编译执行,不管在工程属性对话框的“条件编译参数”框中填写fDebug = 0还是fDebug = 1还是fDebug = -1,结果都还是"Code to run during 编译之前!"呀?!
两位,请用我的代码实际测试一下好吗?我真的不懂了……非常感谢!
你误解了一个关系!
用了#Const fDebug = True后就不用在工程属性对话框的“条件编译参数”中指定值了(指定了也没用),明白吗?这时想要改变编译条件就直接在源代码上把#Const fDebug = True改成Flase。
就象你说的:"如果编译执行,不管在工程属性对话框的“条件编译参数”框中填写fDebug = 0还是fDebug = 1还是fDebug = -1,结果都还是"Code to run during 编译之前!"呀?!"
这是因为编译器在编译时看到#Const fDebug = True就会把FDebug置为True,不管你原来在工程属性对话框的“条件编译参数”框中把fDebug置为几,就是说代码中的#Const fDebug = True的优先级大于“条件编译参数”!
如果你想用工程属性对话框的“条件编译参数”来指定编译条件就不要写#Const fDebug = True,这样就可以用工程属性对话框的“条件编译参数”来指定编译条件了。你把你那段代码的#Const fDebug = True去掉就一切OK!还有,根据你代码的意思,你好像还误解了一个关系!
直接运行或编译成exe运行,都 算 编 译!!!就是说你指定的“条件编译参数”在VB环境中直接运行也有效!所以用你的代码(也可以说用条件编译参数的方式)是无法区分出是在VB环境中还是在exe中的!应该明白了吧?