WriteFile API简介

VB声明
Declare Function WriteFile Lib "kernel32" Alias "WriteFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As OVERLAPPED) As Long
说明
将数据写入一个文件。该函数比lwrite函数要灵活的多。也可将这个函数应用于对通信设备、管道、套接字以及邮槽的处理
返回值
Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError
参数表
参数 类型及说明
hFile Long,一个文件的句柄
lpBuffer Any,要写入的一个数据缓冲区
nNumberOfBytesToWrite Long,要写入数据的字节数量。如写入零字节,表示什么都不写入,但会更新文件的“上一次修改时间”。针对位于远程系统的命名管道,限制在65535个字节以内
lpNumberOfBytesWritten Long,实际写入文件的字节数量
lpOverlapped OVERLAPPED,倘若在指定FILE_FLAG_OVERLAPPED的前提下打开文件,这个参数就必须引用一个特殊的结构。那个结构定义了一次异步写操作。否则,该参数应置为空(将声明变为ByVal As Long,并传递零值)
注解

并不是每种操作系统都支持在任何类型的设备上进行异步操作。windows 95不支持对磁盘文件的重叠读取操作

 

 

-_-!!!真的很简单!

 

补充一点:

 

OVERLAPPED结构

typedef   struct_OVERLAPPED  
  {  
        DWORD   Internal;  
        DWORD   InternalHigh;  
        DWORD   offset;  
        DWORD   offsetHigh;  
        HANDLE   hEvent;  
  }OVERLAPPED;  
  Internal   指定与系统相关的状态,为操作系统的使用而保留;  
  InternalHigh   指定传送数据的长度,为操作系统的使用而保留;  
  offset   指定文件的位置,从该位置传送数据,文件位置是相对文件开始处的字节偏移量。调用ReadFile或WriteFile函数之前调用进程设置这个成员,读写命名管道及通信设备时调用进程忽略这个成员;  
  offsetHigh   指定开始传送数据的字节偏移量的高位字,读写命名管道及通信设备时调用进程忽略这个成员;  
  hEvent   标识事件,数据传送完成时把它设为信号状态,调用ReadFile   WriteFile   ConnectNamedPipe   TransactNamedPipe函数前,调用进程设置这个成员.  
  相关函数   CreateEvent     ResetEvent   GetOverlappedResult   WaitForSingleObject   CWinThread   GetLastErro    

posted @ 2010-04-30 11:48  yimins  阅读(1986)  评论(0编辑  收藏  举报