我需要在附加 ' 后将多字节字符发送到套接字 ' 但我拥有的是 const wchar_t*。我该如何转换它?
如果您的问题是如何实际操作常量的内容,请考虑const_cast。
附加 ' ' 到
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
您不需要使用直接换行符来执行此操作:
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
如何将
转换为const wchar_t*
?wchar_t*
reinterpret_cast<const wchar_t*>(L"Test");
应该真的有用。