一个奇怪的问题,有兴趣的来讨论一下哈

我是丁学 2003-12-13 05:19:04
VB6.0(SP5) + Win2000 Advance Server
新建工程,只有一个模块,(有一个窗体,不过没用上),模块代码如下:
***************************************
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" _
(ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function SearchPath Lib "kernel32" Alias "SearchPathA" _
(ByVal lpPath As String, ByVal lpFileName As String, ByVal lpExtension As String, _
ByVal nBufferLength As Long, ByVal lpBuffer As String, ByVal lpFilepart As String) As Long

Private Sub Main()
Dim Directory , Filename As String
Dim lpFilepart As String
Dim Dir_charnum , Dim File_charnum As Long

'Search Sqlsrv32.dll for check if ODBC driver for SQL Server exist
Directory = Space(255)
Filename = Space(255)
Dir_charnum = GetSystemDirectory(Directory, 255)
Directory = Left$(Directory, Dir_charnum)
File_charnum = SearchPath(Directory, "Sqlsrv32", ".dll", 255, Filename, lpFilepart)
If File_charnum = 0# Then
MsgBox "您还没有安装SQL Server的ODBC驱动程序,系统无法正常运行,请先安装SQL Server的ODBC驱动再运行本系统!", vbOKOnly, "未找到SQL Server的ODBC驱动"
End
End If
End Sub
***************************************
奇怪的是运行结果总是不正确,Dir_charnum可以得到正确的值,但是Directory却一直是一串空格,始终不曾有值,最后解决了,但奇怪的,改动的只是变量声明方式,只是把原来一行声明两个或多个变量的地方,换成每行声明一个,也就是这样:
……
Dim Directory As String
Dim Filename As String
Dim lpFilepart As String
Dim Dir_charnum As Long
Dim File_charnum As Long
……
这样运行就是正确的,为什么呢?什么道理?还是BUG?
...全文
31 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧