为了账号安全,请及时绑定邮箱和手机立即绑定

vb中createfile返回-1?

vb中createfile返回-1?

largeQ 2019-02-12 09:06:57
vb60编程中,为什么我用CreateFile函数无法创建文件? 代码如下: Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Private Const GENERIC_WRITE = &H40000000 Private Const OPEN_EXISTING = 3 Private Const FILE_SHARE_READ = &H1 Private Const FILE_SHARE_WRITE = &H2 dim lngHandle As Long lngHandle = CreateFile("C:\email126.txt", GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0) '创建文件 经运行测试 lngHandle的值为-1,但查找文件时却找不到,文件没有创建!
查看完整描述

2 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

因为你用了 OPEN_EXISTING,前提必须要有c:\email126.txt这个文件才能成功,如果你第一次运行,肯定是-1,如果只是创建一个新文件,要用 CREATE_ALWAYS 或 OPEN_ALWAYS

如:

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private Const CREATE_ALWAYS As Long = 2
Private Const OPEN_ALWAYS As Long = 4

lngHandle = CreateFile("C:\email126.txt", GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, CREATE_ALWAYS, 0, 0) '创建文件

Call CloseHandle(lngHandle) '关闭lngHandle

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 1070 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信