| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 607 人关注过本帖
标题:这几个API在VB中如何使用?((顶到有人来解决)
取消只看楼主 加入收藏
ytmGring
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-5-27
收藏
 问题点数:0 回复次数:7 
这几个API在VB中如何使用?((顶到有人来解决)


Declare Function FindClose Lib "kernel32" Alias "FindClose" (ByVal hFindFile As
Long) As Long

Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal
lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long

Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal
hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long

我想用这几个API实查找查硬盘上所有文件
但不知道在VB中如何使用~

[此贴子已经被作者于2007-10-23 11:33:43编辑过]

搜索更多相关主题的帖子: API 
2007-10-23 09:12
ytmGring
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-5-27
收藏
得分:0 
终于可以这个版块发贴了~~~~~~
大家帮帮我啊~
主要是想看看VC++中的指针等东西在VB里面如何使用
对比一下~
HANDLE FindFirstFileA( char* lpFileName, WIN32_FIND_DATA * lpFindFileData );

Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal
lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long

我在VC中会使用上面的函数~而在VB中不会使用~



欢迎参观http://blog..cn/ytmGring
2007-10-23 09:15
ytmGring
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-5-27
收藏
得分:0 
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type


Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
'cFileName = String(260, Chr(0))'有错 在C里面这里是char cFileName[MAX_PATH]
'cAlternateFileName = String(14, Chr(0))'有错 在C里面这里是char cAlternateFileName [14]
dwFileType As Long
dwCreatorType As Long
wFinderFlags As Integer
End Type


不在在VB中如何定义?

欢迎参观http://blog..cn/ytmGring
2007-10-23 10:08
ytmGring
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-5-27
收藏
得分:0 
还有一个问题~最后一个成员
C里面的short在VB中是否就是Integer

欢迎参观http://blog..cn/ytmGring
2007-10-23 10:09
ytmGring
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-5-27
收藏
得分:0 
下面是VB中全部的代码

Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type


Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String '这么定义
cAlternateFileName As String '这么定义
dwFileType As Long
dwCreatorType As Long
wFinderFlags As Integer
End Type
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long

Private Sub Form_Load()
Dim lpFileName As String
lpFileName = String(256, Chr(0))
lpFileName = "c:\temp\32\p.exe"
Dim lpWin32FileData As WIN32_FIND_DATA
Dim re As Long
re = FindFirstFile(lpFileName, lpWin32FileData)
Text1.Text = re
End Sub
在c:\temp\32\中不放置p.exe的文件运行程序返回值为-1
我在c:\temp\32\中放值了一个叫p.exe的文件后运行程序出现内存访问错误(找到了一个文件.而没有进方存放那个名....)
我想肯定就是WIN32_FIND_DATA中的cFileName和cAlternateFileName没有存贮空间的原因吧??????

高手指点啊~~~~~~~~~~~~~~~~~~~~~~

[此贴子已经被作者于2007-10-23 11:35:12编辑过]


欢迎参观http://blog..cn/ytmGring
2007-10-23 11:03
ytmGring
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-5-27
收藏
得分:0 
顶上去~

欢迎参观http://blog..cn/ytmGring
2007-10-23 13:26
ytmGring
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-5-27
收藏
得分:0 
哈哈.我终于知道该怎么定义了~
cFileName As String * MAX_PATH '应该先定义MAX_PATH吧
cAlternateFileName As String * 14
用乘法.这样就成数组了~
还是网上找的~


欢迎参观http://blog..cn/ytmGring
2007-10-23 13:57
ytmGring
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-5-27
收藏
得分:0 
呵呵,好久没玩VB了
好多东西忘记了~
还有一种方法
cFileName(MAX_PATH) As String '应该先定义MAX_PATH吧
cAlternateFileName(14) As String

欢迎参观http://blog..cn/ytmGring
2007-10-23 21:50
快速回复:这几个API在VB中如何使用?((顶到有人来解决)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016746 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved