我正在学习如何在Winapi中使用 我正在尝试从“我的电脑”中读取文件 但由于某种原因,它不起作用......
HANDLE hFile;
//PVOID First_Bytes[2048];
char First_Bytes[2048];
DWORD dbr = 0;
hFile = CreateFile(L"d:\\My-File",GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL , NULL);
if (hFile == INVALID_HANDLE_VALUE) {
printf("Error %x", GetLastError());
return 1;
}
if (ReadFile(hFile, &First_Bytes, 512, &dbr, NULL) == 0) {
printf("ReadFile error: %x", GetLastError());
return 1;
}
printf("%s", First_Bytes);
CloseHandle(hFile);
控制台不打印任何内容。
我做错了什么?
答案 0 :(得分:1)
逻辑结论是文件中的第一个字节为零。您将缓冲区视为以null结尾的字符串,因此不会打印任何内容。
请注意,无法保证缓冲区为空终止,因此您可能会有未定义的行为。