我正在尝试编写一个非常简单的win32程序。我使用 CreateFile()打开一个文件进行阅读,然后使用 ReadFile()
读取它的内容HANDLE hfile=CreatFileW(L"Capturejpg.jpg", GENERIC_READ, 0,
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,NULL);
bReadResult=ReadFile(hFile, ReadBuff, BUFFERSIZE-1, &dwBytes, &OL);
当我读取.txt文件时,例如,这很好用,问题是我正在读取的文件包含NULL(大多数文件都是这种情况)然后 ReadFile 函数在到达第一个NULL时停止读取(或者可能将字节写入ReadBuff
)。
在询问我之前,找到了两个答案。
答案 0 :(得分:1)
ReadFile
并不关心它所读取的内容。它会非常愉快地读取零字节并继续读取文件中的那一点。如果它不能那样做就没有多大用处。
你刚才误解了这个问题。您已读入字符数组ReadBuffer
,然后打印如下:
printf("%s", ReadBuffer);
现在,printf
确实会在达到零字节时停止。您需要找到一些其他方法来输出此文件的内容。