createfile 问题

history123 2015-07-23 09:54:07

Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Object) As Long

Public Structure SECURITY_ATTRIBUTES
Public nLength As Long
Public lpSecurityDescriptor As IntPtr
Public bInheritHandle As Boolean
End Structure
hFile = CreateFile(strFileName, GENERIC_READ, FILE_SHARE_READ, secattr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, DBNull.Value) '打开文件


为什么总是提示 对 PInvoke 函数“WindowsApplication1!WindowsApplication1.Form1::CreateFile”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
请指点一下小白。
...全文
147 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
轻鸿万里 2015-07-26
  • 打赏
  • 举报
回复
.NET的文件处理功能已经够强大的啦,为什么还要用API函数呢。
history123 2015-07-24
  • 打赏
  • 举报
回复
integer int32都试了,没有用
threenewbee 2015-07-23
  • 打赏
  • 举报
回复
vb.net需要把long换成integer
history123 2015-07-23
  • 打赏
  • 举报
回复
Dim secattr As SECURITY_ATTRIBUTES secattr.nLength = Marshal.SizeOf(secattr) secattr.bInheritHandle = False secattr.lpSecurityDescriptor = 0

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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