1.#if #else #endif
的作用是条件编译已选择的vb代码块
2.从语法上来说。
#if #else #endif不允许与代码行出现在同一行中。
也就是不能象if else endif 这样使用:
if ... then x=1
else
x=2
end if
这在对.#if #else #endif来说是不允许的
的作用是条件编译已选择的vb代码块
2.从语法上来说。
#if #else #endif不允许与代码行出现在同一行中。
也就是不能象if else endif 这样使用:
if ... then x=1
else
x=2
end if
这在对.#if #else #endif来说是不允许的
解决方案 »
- 关于用accsee数据库邦定到msflexgrid控件的问题,急处理!!!
- 谁有关于vb win32api编程的电子书或者下载地址
- 在VB中怎样将树的节点显示的是sql server数据库中某个字段中的内容?
- 求助:VB中利用webbrowser控件出现的一个问题
- MAPIMessages如何添加多个收件人????????
- 关于vb的几个小问题
- 只有188分了,冒险一问!!!!! Active Report 打印问题
- VB插件
- 如何用listview中显示文件图标?
- 如何删除数据库中的重复记录,快帮帮我,马上就要使用了,谢谢诸位
- $$$$$两个简单问题,回答出的均给分!$$$$$
- 请教专家,如何实现数组的快速复制?
条件编译通常用来编译不同平台上的同一个程序。也可以用来避免调试程序代码出现在可执行程序中。条件编译时被排除的程序代码在最后的可执行文件中被完全略去,所以不会对程序的大小或功能有任何影响。无论结果如何,都要计算所有表达式。所以,在表达式中用到的所有常数都必须加以定义— 任何未定义的常数都会被当作 Empty 来计算取值。
用于不同操作系统时用的比较多
比如9x和NT
#If _Debug = 1 Then
Private Function Fun(V As Integer) AS Integer
Fun = V + 1
End Function
#Else
Private Function Fun(V As Long) AS Long
Fun = V + 1
End Function
#End If如果 _Debug = 1 有定义
则编译器生成前一个函数,第二个函数的语句等于没有,象注释一样。
相当于:
Private Function Fun(V As Integer) AS Integer
Fun = V + 1
End Function
'Private Function Fun(V As Long) AS Long
' Fun = V + 1
'End Function
你想一想
函数定义可以放在If Else EndIf里吗?
Dim i AS Integer
#If Win32 = 1 Then
Dim j AS Long
#Else
Dim j AS Integer
#End If
if i = 10 Then : Print i : End If
如果在工程属性里定义了 Win32 = 1 ,则以上语句在编译器看来是:
Dim i AS Integer
Dim j AS Long
if i = 10 Then : Print i : End If否则,那段语句在编译器看来是:
Dim i AS Integer
Dim j AS Integer
if i = 10 Then : Print i : End If
看到了吗?
#If最终在你的程序中是不存在的。它告诉编译器“当某个条件成立时,才编译里面的语句,否则你就当我没有打入这些语句,编译时完全不要管它”