c++将unicode CString或wchar_t转换为LPBYTE
C++ convert unicode CString or wchar_t to LPBYTE
我知道这是一个简单的问题,但我已经尝试了很多方法,在所有这些方法中,我丢失了数据,文本数据,而不是那些在每个字节之后尾随0的数据。
我使用GetBuffer(0)
将CString
转换为wchar_t
,仍然没有运气。我找不到合适的LPBYTE
。
最后我需要它是const LPBYTE
,但我认为与LPBYTE
的简单铸造我可以得到const LPBYTE
。
所以你能帮我转换CString
或wchar_t
到LPBYTE
数组吗?
谢谢
如果您想"看到"CString
的内容作为BYTE
的简单"原始"序列(数组),您可以使用CString::GetString()
方法获得指向第一个CString
字符的指针,然后强制转换为const BYTE*
:
CString str;
....
const BYTE* pb = reinterpret_cast<const BYTE*>(str.GetString());
如果你想"看到"单个wchar_t
作为BYTE
的序列,你可以获取它的地址并再次强制转换为const BYTE*
:
wchar_t wch;
....
const BYTE* pb = reinterpret_cast<const BYTE*>(&wch);
但是如果你想从Unicode UTF-16转换为另一种编码,如UTF-8,你可能想使用一些转换助手,如CW2A
:
CString strUtf16; // Assume UNICODE builds (the default since VS2005)
....
// Convert from UTF-16 to UTF-8
CW2A strUtf8( strUtf16, CP_UTF8 );
// Convert (cast) to const BYTE*
const BYTE* pb = reinterpret_cast<const BYTE*>( static_cast<const char*>(strUtf8) );
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中使用nlohmann从类到json的转换
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 复制列表初始化的隐式转换的等级是多少
- 如何将LPBYTE转换为字符串
- C++ 在 Win DLL 到 Linux SO 转换中将 LPBYTE 更改为无符号字符*后编译器错误
- 在MFC中将LPBYTE数据转换为CString
- 如何在c++中将LPBYTE转换为char */string
- c++将unicode CString或wchar_t转换为LPBYTE
- 将LPBYTE转换为字符串