gpt4 book ai didi

C++ 将 unicode CString 或 wchar_t 转换为 LPBYTE

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:52:22 28 4
gpt4 key购买 nike

我知道这是个简单的问题,但我尝试了很多方法,在所有这些方法中我都丢失了数据,文本数据,而不是每个字节后的尾随 0。

我使用 GetBuffer(0)CString 转换为 wchar_t,仍然没有成功。我无法获得正确的 LPBYTE

最后我需要它是const LPBYTE,但我认为通过简单转换LPBYTE我可以获得const LPBYTE

那么你能帮我把 CStringwchar_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,你可能想使用一些 conversion helpers like 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++ 将 unicode CString 或 wchar_t 转换为 LPBYTE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14403908/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com