CreateFileA方法的问题

时间:2019-11-12 14:44:19

标签: c++ winapi

我的应用程序出现问题,因为读取文件也包含Unicode字符时。由于我正在使用CreateFileA方法来获取数据,但无法正确获取Unicode字符,因此我面临很多问题。另外,我不知道CreateFileACreateFileW之间的区别。

对不起,我无法共享我的代码。我将与您分享那部分代码。

    HANDLE systemFileHandle = INVALID_HANDLE_VALUE;                                       
    systemFileHandle = CreateFileA(Filename, GENERIC_READ, FILE_SHARE_READ, nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, nullptr);

    char* inBuffer=new char[totalFileSize+2];
    memset(inBuffer, 0, totalFileSize+2);
    ReadFile(systemFileHandle, inBuffer, totalFileSize, &bytesRead, nullptr);

    And, I am getting the results on inBuffer array be like : Fernw�rmestationSW Au�en.

我不能以原来的方式得到它吗?

所以您能帮我这个忙吗?这可能非常有帮助。

1 个答案:

答案 0 :(得分:0)

CreateFileA采用基于ANSI的文件名,而CreateFileW采用基于Unicode的文件名。关于文件的内容没有什么可说的,两者都会向文件返回HANDLE,然后您就可以根据需要读取/写入Unicode内容。