首页 > 解决方案 > CreateFileA 方法的问题

问题描述

我的应用程序在读取包含 Unicode 字符的文件时遇到问题。因为我正在使用该CreateFileA方法获取数据,但它没有正确获取我面临很多问题的 Unicode 字符。另外,我不知道 和 之间的CreateFileA区别CreateFileW

很抱歉我无法分享我的代码。我将与您分享我的那部分代码。

    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.

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

所以你能帮我解决这个问题吗?这会很有帮助。

标签: c++winapi

解决方案


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


推荐阅读