创建文件以写入文本数据时,CreateFile 函数返回 INVALID_HANDLE_VALUE

问题描述 投票:0回答:1

我试图通过创建文件然后写入数据来将文本数据(Unicode)写入文本文件。我在 Windows 98(虚拟机)上使用 Visual Studio 6.0。

问题是函数

CreateFile
会产生数字“6”的错误,这意味着
ERROR_INVALID_HANDLE

const wchar_t str[] = L"Hello World!";
// I have used "C:\\file.txt" and "C:\file.txt" too
HANDLE hFile = CreateFile(TEXT("C:\\file.txt"), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if(hFile == INVALID_HANDLE_VALUE){
    MessageBox(NULL, L"Error, Creating a file.", L"A Message", MB_OK);
    return 0;
}
if(WriteFile(hFile, str, sizeof(str), 0, 0)){
    MessageBox(NULL, L"The string has been written successfully", L"A Message", MB_OK);
} else {
    wchar_t buff[10];
    swprintf(buff, L"%d", GetLastError());
    MessageBox(NULL, buff, L"A Message", MB_OK);
}
closeHandle(hFile);

注意该功能在现代操作系统上运行良好,但不知道为什么在win9x系统上会出现这个问题。

c++ file winapi windows-98
1个回答
0
投票

CreateFile(A/W) 在 Windows 98 上不起作用,因为根据 MSDN 上的描述,最低客户端是 Windows XP。例如,也许您应该尝试使用 C“fopen”函数?

© www.soinside.com 2019 - 2024. All rights reserved.