如何将 const wchar_t* 转换为 wchar_t 或多字节字符?

问题描述 投票:0回答:4

我需要在附加 ' 后将多字节字符发送到套接字 ' 但我拥有的是 const wchar_t*。我该如何转换它?

visual-studio-2010 visual-c++
4个回答
0
投票

如果您的问题是如何实际操作常量的内容,请考虑const_cast


0
投票

附加 ' ' 到

const wchar_t*
字符串意味着您必须复制原始字符串。阅读 MS 文档,了解如何使用 swprintf:

http://msdn.microsoft.com/en-us/library/ybk95axf%28VS.71%29.aspx

如果您的问题是转换,

WideCharToMultiByte
函数是您的朋友:

http://msdn.microsoft.com/en-us/library/dd374130%28VS.85%29.aspx


0
投票

您不需要使用直接换行符来执行此操作:

const wchar_t* original(L"original value");
std::wostringstream streamVal;
streamVal << original << std::endl;
const std::wstring modified(streamVal.str());

经历

_bstr_t
似乎很痛苦,但可以让你很容易地进行宽字符到多字节的转换(小代码)。 在项目的库列表中包含
comsuppw.lib

#include "comutil.h"

_bstr_t bstrVal(modified.c_str());
const char* multibytes((const char*)bstrVal);

std::cout << multibytes;            // includes newline

0
投票

如何将

const wchar_t*
转换为
wchar_t*

reinterpret_cast<const wchar_t*>(L"Test");

应该真的有用。

© www.soinside.com 2019 - 2024. All rights reserved.