API函数 ReadFile的pb的中文说明谁有,告诉我好吗?
能给我一个API的PB帮助吗?我这有一个VB的好多东西都和pb不一样,那能下到它?
能给发一个吗?jiazhij@sina.com
FUNCTION ulong ReadFile(ulong hFile,ref Any lpBuffer,ulong nNumberOfBytesToRead,ref ulong lpNumberOfBytesRead,ref OVERLAPPED lpOverlapped) LIBRARY "kernel32.dll"
API函数在哪不都是一样的吗?只是在不同的编程工具中,
他们的申明可能有点差异。
FUNCTION ulong ReadFile(ulong hFile,ref Any lpBuffer,ulong nNumberOfBytesToRead,ref ulong lpNumberOfBytesRead,ref OVERLAPPED lpOverlapped) LIBRARY "kernel32.dll"
【说明】
从文件中读出数据。与lread函数相比,这个函数要明显灵活的多。该函数能够操作通信设备、管道、套接字以及邮槽
【参数】
hFile ---------- Long,文件的句柄
lpBuffer ------- Any,用于保存读入数据的一个缓冲区
nNumberOfBytesToRead - Long,要读入的字符数
lpNumberOfBytesRead - Long,从文件中实际读入的字符数
lpOverlapped --- OVERLAPPED,如文件打开时指定了FILE_FLAG_OVERLAPPED,那么必须用这个参数引用一个特殊的结构。那个结构定义了一次异步读取操作。否则,应将这个参数设为NULL(将函数声明成ByVal
As Long,并传递零值)
【返回值】
Long,非零表示成功,零表示失败。会设置GetLastError。如启动的是一次异步读操作,则函数会返回零值,并将ERROR_IO_PENDING设置成GetLastError的结果。如结果不是零值,但读入的字节数小于nNumberOfBytesToRead参数指定的值,表明早已抵达了文件的结尾
【备注】
并非每种操作系统都支持对每种设备进行异步操作。Windows
95不支持对一个磁盘文件进行异步读操作(重复读)
BOOL ReadFile(
HANDLE hFile, // handle of file to read
LPVOID lpBuffer, // pointer to buffer that receives data
DWORD nNumberOfBytesToRead, // number of bytes to read
LPDWORD lpNumberOfBytesRead, // pointer to number of bytes read
LPOVERLAPPED lpOverlapped // pointer to structure for data
);
hFile Long 文件的句柄
lpBuffer Any, 用于保存读入数据的一个缓冲区
nNumberOfBytesToRead Long 要读入的字符数
lpNumberOfBytesRead Long 从文件中实际读入的字符数
lpOverlapped OVERLAPPED 如文件打开时指定了FILE_FLAG_OVERLAPPED,那么必须用这个参数引用一个特殊的结构。那个结构定义了一次异步读取操作。否则,应将这个参数设为NULL(将函数声明成ByVal As Long,并传递零值)
FUNCTION ulong ReadFile(ulong hFile,ref Any lpBuffer,ulong nNumberOfBytesToRead,ref ulong lpNumberOfBytesRead,ref OVERLAPPED lpOverlapped) LIBRARY "kernel32.dll"
为什么这个我这么定义不行?
Error C0001: Illegal data type: overlapped
API帮助里是这么说OVERLAPPED的:
OVERLAPPED,如文件打开时指定了FILE_FLAG_OVERLAPPED,那么必须用这个参数引用一个特殊的结构。那个结构定义了一次异步读取操作。否则,应将这个参数设为NULL(将函数声明成ByVal As Long,并传递零值)
你自己定义个结构OVERLAPPED,里面随便写。然后用ReadFile()时将最后一个参数设为NULL就KO了!