在VB 中 调用 Win32 API 函数 FileTimeToDosDateTime 的问题

天拉噜 2003-07-02 11:12:38
该函数的在Win32 SDK中的声明方法为:
BOOL FileTimeToDosDateTime(
CONST FILETIME *lpFileTime,
// pointer to 64-bit file time
LPWORD lpFatDate, // pointer to variable for MS-DOS date
LPWORD lpFatTime // pointer to variable for MS-DOS time
);

请问怎么在VB中定义与LPWORD类型兼容的数据类型?
...全文
106 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
天拉噜 2003-07-02
  • 打赏
  • 举报
回复
这两种类型我都用过,但是执行到这里时,出现应用程序错误提示框:"0x77e6eee4"指令引用的"0x00000000"的内存。该内存不能为"written"。
hiker_lx 2003-07-02
  • 打赏
  • 举报
回复
LPWORD对应Integer类型
天拉噜 2003-07-02
  • 打赏
  • 举报
回复
Long不行啊,我试过执行到这里就出错了。
lwm1977 2003-07-02
  • 打赏
  • 举报
回复
long试试
天拉噜 2003-07-02
  • 打赏
  • 举报
回复
我还是把我的源码贴出来,大家帮我诊断一下吧

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 * 260
cAlternate As String * 14
End Type

Private Declare Function FileTimeToLocalFileTime Lib "Kernel32" (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long
Private Declare Function FindFirstFile Lib "Kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "Kernel32" (ByVal hFindFile As Long) As Long
Private Declare Function FileTimeToDosDateTime Lib "Kernel32" (lpFileTime As FILETIME, ByVal lpFatDate As Long, ByVal lpFatTime As Long) As Long

Function FileExists(FileName As String) As Boolean
FileExists = FileAge(FileName) <> -1
End Function

Function FileAge(FileName As String) As Long
Dim Handle As Long
Dim FindData As WIN32_FIND_DATA
Dim LocalFileTime As FILETIME

Handle = FindFirstFile(FileName, FindData)
If Handle <> -1 Then
FindClose (Handle)
If (FindData.dwFileAttributes And File_Attribute_Directory) = 0 Then
Call FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime)
'执行到下一句就出现了上面的错误
If FileTimeToDosDateTime(LocalFileTime, FileAge, FileAge) Then
Exit Function
End If
End If
End If
FileAge = -1
End Function
刘洪峰AIoT 2003-07-02
  • 打赏
  • 举报
回复
Private Declare Function FileTimeToDosDateTime Lib "kernel32" Alias "FileTimeToDosDateTime" (lpFileTime As FILETIME, ByVal lpFatDate As Long, ByVal lpFatTime As Long) As Long

7,785

社区成员

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

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