如何在Winapi上使用readfile读取文件

时间:2015-11-07 18:46:26

标签: winapi readfile

我正在学习如何在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);

控制台不打印任何内容。

我做错了什么?

  • 我编辑了代码并添加了错误检查。 但仍然领事不打印任何东西

1 个答案:

答案 0 :(得分:1)

逻辑结论是文件中的第一个字节为零。您将缓冲区视为以null结尾的字符串,因此不会打印任何内容。

请注意,无法保证缓冲区为空终止,因此您可能会有未定义的行为。