首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

CreateFile 的句柄如何老是-1阿

2012-01-24 
CreateFile 的句柄怎么老是-1阿?PublicDeclareFunctionCreateFileLibkernel32 AliasCreateFileA (ByVa

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&)

热点排行