注册 登录
编程论坛 VB6论坛

关于VB6的指示词用法

wube 发布于 2018-06-14 04:12, 1575 次点击
记得C语言有类似的功能,就是要做相容模式时,可能因为各种OS版本内建的API不同可以进行选择性编译,
依照OS的差别而选择当下要运行的API种类,是叫预编译吗?还是什么名称?

最近发现VB6也有类似功能,但是用法不确定,不知版上大神可否略微说明一下,MSDN上的解释有点看不懂
Thanks...

Example:

#if XXX then
XXX
#else
XXX
#endif

这东西只能写在声明吗?还是在Sub或Function内也能运用?
2 回复
#2
风吹过b2018-06-14 09:31
我只用过 选择性编译 ,对于 是否存在硬件常量没去 研究

工程属性里,有一个 条件编译参数 ,这里面可以定义 选择性编译标志变量
如写一个 dd=1

以下代码,编译和执行都就使用第一段
#If dd = 1 Then
    MsgBox 1
#Else
    MsgBox 2
#End If


如果在正式版里,去掉这个 条件编译参数
那么就会编译第二段。

我这个是用在大工程里,使用条件编译把 debug 部分选择起来。
调试时,debug 部分可见,编译正式版时,这部分不可见。


#3
风吹过b2018-06-14 09:59
查了一下,
这个常数还可以使用代码定义:
#Const 指令

我只找到VB6提供的1组 常量
在 16 位开发平台上,编译常数定义如下:

常数 值 描述
Win16 True 指出开发环境是 16 位。
Win32 False 指出开发环境不是 32 位。

在 32 位开发平台上,编译常数定义如下:
常数 值 描述
Win16 False 指出开发环境不是 16 位。
Win32 True 指出开发环境是 32 位。

1