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
返回值
Long,TRUE(非零)表示成功,否則返回零。會設置GetLastError
參數表
參數 類型及說明
hFile Long,一個文件的句柄
lpBuffer Any,參數類型:指針,指向将寫入文件的數據緩沖區
nNumberOfBytesToWrite Long,要寫入數據的字節數量。如寫入零字節,表示什麼都不寫入,但會更新文件的“上一次修改時間”。針對位于遠程系統的命名管道,限制在65535個字節以内
lpNumberOfBytesWritten Long,實際寫入文件的字節數量(此變量是用來返回的)
lpOverlapped OVERLAPPED,倘若在指定FILE_FLAG_OVERLAPPED的前提下打開文件,這個參數就必須引用一個特殊的結構。那個結構定義了一次異步寫操作。否則,該參數應置為空(将聲明變為ByVal As Long,并傳遞零值)
注解
并不是每種操作系統都支持在任何類型的設備上進行異步操作。windows 95不支持對磁盤文件的重疊讀取操作
VC聲明
BOOL WriteFile(
HANDLE hFile, // 文件句柄
LPCVOID lpBuffer, // 數據緩存區指針
DWORD nNumberOfBytesToWrite, // 你要寫的字節數
LPDWORD lpNumberOfBytesWritten, // 用于保存實際寫入字節數的存儲區域的指針
LPOVERLAPPED lpOverlapped // OVERLAPPED結構體指針
);
功能說明
從文件指針指向的位置開始将數據寫入到一個文件中, 且支持同步和異步操作,
如果文件打開方式沒有指明FILE_FLAG_OVERLAPPED的話,當程序調用成功時,它将實際寫入文件的字節數保存到lpNumberOfBytesWriten指明的地址空間中
如果文件要交互使用的話,當函數調用完畢時要記得調整文件指針
參數說明
HANDLE hFile, 需要寫入數據的文件指針,這個指針指向的文件必須是GENERIC_WRITE access 訪問屬性的文件
LPOVERLAPPED lpOverlapped OVERLAPPED結構體指針,如果文件是以FILE_FLAG_OVERLAPPED方式打開的話,那麼這個指針就不能為NULL
vc返回值
調用成功,返回非0
調用不成功,返回為0
例:fs.writeFile(filename, data, callback)nnvar fs= require("fs");nnfs.writeFile('test.txt', 'Hello Node', function (err) {n if (err) throw err;n console.log('Saved successfully'); //文件被保存n});
返回值2
調用成功,返回非0
調用不成功,返回為0
用例:
DWORD dev_write(LPCVOID buf,DWORD NumBytes) // 寫數據{DWORD writeaddr=0;if(handle != INVALID_HANDLE_VALUE){WriteFile(handle,buf,dwNumBytes,&writeaddr,NULL);}return writeaddr;
}



















