【问题标题】:How to create a file with UNICODE path on Windows with C++如何使用 C++ 在 Windows 上创建具有 UNICODE 路径的文件
【发布时间】:2012-04-13 23:20:40
【问题描述】:

我想知道哪个 Win32 API 调用正在使用 UNICODE 路径创建文件。只是为了确保,我不是在谈论这里的内容,只是文件路径。如果有人用 MSDN url 打我,我将不胜感激,我的 google fu 这次失败了。

提前一百万谢谢。

【问题讨论】:

  • 呃,CreateFile?哪些与 I/O 相关的 Win32 API支持 Unicode?​​span>
  • Windows 从 NT 3.1 开始支持 unicode support.microsoft.com/kb/99884
  • 我认为您在 MSDN 中寻找的短语是 UNC
  • 我找到了 CreateFileW() 函数,它可以满足我的需要。谢谢大家。
  • 您的应用程序应使用定义的 UNICODE 进行编译,然后您将获得本机 Unicode API,而不是真正 API 的 naff 旧 ANSI 包装器

标签: c++ windows winapi unicode filesystems


【解决方案1】:

请参阅CreateFile msdn 链接:http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858%28v=vs.85%29.aspx,如果您将 unicode 字符串传递给 lpFileName 参数,则将使用CreateFile 的 unicode 版本。

您还需要以二进制模式打开文件,请参阅 msdn 论坛上的此讨论:http://social.msdn.microsoft.com/forums/en-US/vclanguage/thread/71fa98ca-e757-4099-8f7f-fefcfe645298 指向此 msdn 文章:http://msdn.microsoft.com/en-us/library/c4cy2b8e%28vs.71%29.aspx

【讨论】:

    【解决方案2】:

    这个问题的主要标签是“c++”而不是“windows. 现在,除非这只是一个非常常见的作弊,以便在更大的(大部分不相关的)观众面前提出一个 windows api 问题,否则答案应该与 c++ 稍微相关。

    因此,在 C++ 应用程序中,有许多可以采用 wchar_t 的 std:: 特化。以wofstream 为例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      • 1970-01-01
      • 2020-09-20
      • 1970-01-01
      • 2011-08-24
      • 2022-01-24
      相关资源
      最近更新 更多