首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

WriteFile不能写7G资料

2012-10-30 
WriteFile不能写7G文件我有一个很大的结构数组7G,为方便此后内存映射读入,想一次写盘,但用WriteFile写超过

WriteFile不能写7G文件
我有一个很大的结构数组7G,为方便此后内存映射读入,想一次写盘,
但用WriteFile写超过4G的文件时,不成功。

BOOL WriteFile(HANDLE hFile, // 文件句柄
   LPCVOID lpBuffer, // 数据缓存区指针
   DWORD nNumberOfBytesToWrite, // 要写的字节数 ****
   LPDWORD lpNumberOfBytesWritten, // 用于保存实际写入字节数的存储区域的指针
   LPOVERLAPPED lpOverlapped // 
  OVERLAPPED结构体指针   );

DWORD nNumberOfBytesToWrite, 这个参数我用long long定义,足够大,

但执行后就是一个DWORD内的余数部分写盘了。

请教如何解决。

[解决办法]
WriteFile参数类型是DWORD 最大值是2的32次方-1,显然文件大小定死了,不能超过最大值。


xp、win7的ntfs系统,只要是32位的,都有4G文件限制,除非你升到64位系统,但那样可能现有的很多东西都要调整了
[解决办法]
64位NTFS应该可以。
[解决办法]
想别的办法吧
[解决办法]
VC++ 大文件读写(大于4G)
如果文件不见了。chkdsk就会显示。
[解决办法]

探讨
VC++ 大文件读写(大于4G)
如果文件不见了。chkdsk就会显示。

[解决办法]
DWORD nNumberOfBytesToWrite, 这个参数我用long long定义,足够大,

?? 
可怜的孩子!!
[解决办法]
一次写盘没试过.
但多次写盘可以超过G4G

热点排行