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; } }
欢迎讨论,相互学习。
cdtxw@foxmail.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!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应用