std::string转wchar_t,WCHAR_windowsAPI

std::string转wchar_t,WCHAR

复制代码
#include <string>
#include <windows.h>

std::string str = "Your ASCII or UTF-8 string";
int wstr_size = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, NULL, 0);
std::vector<wchar_t> wstr(wstr_size);
MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, &wstr[0], wstr_size);

// 如果需要将结果转换为 std::wstring
std::wstring wstr_result(&wstr[0], wstr_size - 1);
复制代码

 或者:

目录不存在则创建

复制代码
std::string CFileOperation::GetCurrentPath()
{
    TCHAR  path[MAX_PATH];
    //string *aa;
    GetModuleFileName(NULL, path, MAX_PATH);
    std::cout << "Current file path: " << path << std::endl;
    std::string str = TCHARToStdString(path);
    return str;
}
复制代码

 

复制代码
 LPCWSTR dir_path = L"example_directory";
        string current_path = GetCurrentPath();
        std::string find_str = ".exe";
        size_t find_index = current_path.find(find_str);
        current_path = current_path.replace(find_index, find_str.length(), "_Log");
        
       
        std::wstring stemp = s2ws(current_path);

        LPCWSTR result = stemp.c_str();
        dir_path = result;

        // 检查目录是否存在
        DWORD dwAttrib = GetFileAttributesW(dir_path);

        if (dwAttrib == INVALID_FILE_ATTRIBUTES)
        {
            // 目录不存在,尝试创建它
            if (CreateDirectoryW(dir_path, NULL)) {
                std::wcout << L"Directory created: " << dir_path << std::endl;
            }
            else {
                // 获取错误信息
                DWORD err = GetLastError();
                std::wcerr << L"Failed to create directory: " << dir_path << L" Error: " << err << std::endl;
                return 1;
            }
        }
复制代码

 

 LPCWSTR dir_path = L"example_directory";        string current_path = GetCurrentPath();        std::string find_str = ".exe";        size_t find_index = current_path.find(find_str);        current_path = current_path.replace(find_index, find_str.length(), "_Log");                       std::wstring stemp = s2ws(current_path);
        LPCWSTR result = stemp.c_str();        dir_path = result;
        // 检查目录是否存在        DWORD dwAttrib = GetFileAttributesW(dir_path);
        if (dwAttrib == INVALID_FILE_ATTRIBUTES)        {            // 目录不存在,尝试创建它            if (CreateDirectoryW(dir_path, NULL)) {                std::wcout << L"Directory created: " << dir_path << std::endl;            }            else {                // 获取错误信息                DWORD err = GetLastError();                std::wcerr << L"Failed to create directory: " << dir_path << L" Error: " << err << std::endl;                return 1;            }        }
posted @   txwtech  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2024-01-07 52.python收集参数
2024-01-07 51.python的包的创建与使用
2024-01-07 usb摄像头测试软件
2022-01-07 c# Xamarin.Android 安卓开发 Android app应用
点击右上角即可分享
微信分享提示