繁体   English   中英

如何在c ++中从LPCSTR转换为LPCWSTR

[英]how to convert from LPCSTR to LPCWSTR in c++

附加信息我正在构建一个使用WinHttpOpenRequest Api的应用程序,它需要LPCWSTR作为对象名称并使用visual studio 2008

最简单的方法是使用ATL:

#include <Windows.h>
#include <atlbase.h>
#include <iostream>

int main(int argc, char *argv[]) {
    USES_CONVERSION;
    LPCSTR a = "hello";
    LPCWSTR w = A2W(a);
    std::wcout << w << std::endl;
    return 0;
}

当函数退出时,将释放由A2W(ANSI到Wide)分配的任何内存。

从char *转换有一个很好的样本

char *orig = "Hello, World!";
cout << orig << " (char *)" << endl;

// Convert to a wchar_t*
size_t origsize = strlen(orig) + 1;
const size_t newsize = 100;
size_t convertedChars = 0;
wchar_t wcstring[newsize];
mbstowcs_s(&convertedChars, wcstring, origsize, orig, _TRUNCATE);
wcscat_s(wcstring, L" (wchar_t *)");
wcout << wcstring << endl;

但就像十四提到的那样。 尽可能使用通用文本映射

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM