CreateFile 的句柄怎么老是-1阿?
Public Declare Function CreateFile Lib "kernel32 " Alias "CreateFileA " (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
fileHwnd = CreateFile(sourcepath, GENERIC_READ, FILE_SHARE_WRITE Or FILE_SHARE_READ, security, OPEN_EXISTING, 0, 0)
fileHwnd的值老是-1的.怎么会这样的阿..那个路径是绝对存在的.
还有我在百度搜了下.看到有些是把lpSecurityAttributes的类型改为Long的,我也试改一下,也是不行的.
哪里出错阿?
[解决办法]
Read:
Access = GENERIC_READ
Share = FILE_SHARE_READ
Disposition = OPEN_EXISTING
Flags = FILE_ATTRIBUTE_ARCHIVE Or FILE_ATTRIBUTE_HIDDEN Or FILE_ATTRIBUTE_NORMAL Or FILE_ATTRIBUTE_READONLY Or FILE_ATTRIBUTE_SYSTEM
lGetFileHandle = CreateFile(FileName, Access, Share, ByVal 0&, Disposition, Flags, 0&)
Write:
Access = GENERIC_READ Or GENERIC_WRITE
Share = 0&
If useUnicode Then
Flags = GetFileAttributesW(StrPtr(FileName))
Else
Flags = GetFileAttributes(FileName)
End If
If Flags < 0& Then Flags = FILE_ATTRIBUTE_NORMAL
' CREATE_ALWAYS will delete previous file if necessary
Disposition = CREATE_ALWAYS
lGetFileHandle = CreateFile(FileName, Access, Share, ByVal 0&, Disposition, Flags, 0&)