zoukankan      html  css  js  c++  java
  • CP_ACP : CP_OEMCP

        // filesystem windows_file_codecvt.cpp -----------------------------------------//
          
         // Copyright Beman Dawes 2009
          
         // Distributed under the Boost Software License, Version 1.0.
         // See http://www.boost.org/LICENSE_1_0.txt
          
         // Library home page: http://www.boost.org/libs/filesystem
          
         //--------------------------------------------------------------------------------------//
          
         // define BOOST_FILESYSTEM_SOURCE so that <boost/system/config.hpp> knows
         // the library is being built (possibly exporting rather than importing code)
         #define BOOST_FILESYSTEM_SOURCE
          
         #ifndef BOOST_SYSTEM_NO_DEPRECATED
         # define BOOST_SYSTEM_NO_DEPRECATED
         #endif
          
         #include <boost/filesystem/config.hpp>
         #include <cwchar> // for mbstate_t
          
         #ifdef BOOST_WINDOWS_API
          
         #include "windows_file_codecvt.hpp"
          
         // Versions of MinGW prior to GCC 4.6 requires this
         #ifndef WINVER
         # define WINVER 0x0500
         #endif
          
         #include <windows.h>
          
         std::codecvt_base::result windows_file_codecvt::do_in(
         std::mbstate_t &,
         const char* from, const char* from_end, const char*& from_next,
         wchar_t* to, wchar_t* to_end, wchar_t*& to_next) const
         {
         UINT codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP;
          
         int count;
         if ((count = ::MultiByteToWideChar(codepage, MB_PRECOMPOSED, from,
         from_end - from, to, to_end - to)) == 0)
         {
         return error; // conversion failed
         }
          
         from_next = from_end;
         to_next = to + count;
         *to_next = L'';
         return ok;
         }
          
         std::codecvt_base::result windows_file_codecvt::do_out(
         std::mbstate_t &,
         const wchar_t* from, const wchar_t* from_end, const wchar_t* & from_next,
         char* to, char* to_end, char* & to_next) const
         {
         UINT codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP;
          
         int count;
         if ((count = ::WideCharToMultiByte(codepage, WC_NO_BEST_FIT_CHARS, from,
         from_end - from, to, to_end - to, 0, 0)) == 0)
         {
         return error; // conversion failed
         }
          
         from_next = from_end;
         to_next = to + count;
         *to_next = '';
         return ok;
         }
          
         # endif // BOOST_WINDOWS_API
     

    https://github.com/chigraph/chigraph/blob/master/third_party/boost/filesystem/windows_file_codecvt.cpp

  • 相关阅读:
    OPC-UA和IEC 62541协议
    excel多级部门字符串截取其中一端的公式
    mac 显示音频文件 速率
    解决:Mac安装HOME brew 拒绝了我们的连接请求解决方案
    ss自定义规则
    macos关闭更新功能
    mac 使用触摸板左键长按选择是,总是弹出系统自带词典的问题
    固定区域截图快速粘贴到表格
    Outlook 2016 for Mac 更改邮件存放路径
    微信发送高清视频(避免被微信压缩变模糊),100M以内
  • 原文地址:https://www.cnblogs.com/findumars/p/7989277.html
Copyright © 2011-2022 走看看