我需要将CString转换为BYTE数组。我不知道为什么,但我在网上发现一切都没有工作:( 例如,我有无法将CString转换为BYTE数组
CString str = _T("string");
我一直在试图使 1)
BYTE *pbBuffer = (BYTE*)(LPCTSTR)str;
2)
BYTE *pbBuffer = new BYTE[str.GetLength()+1];
memcpy(pbBuffer, (VOID*)(LPCTSTR)StrRegID, str.GetLength());
3)
BYTE *pbBuffer = (BYTE*)str.GetString();
而且总是pbBuffer包含海峡的只是第一个字母
DWORD dwBufferLen = strlen((char *)pbBuffer)+1;
是2
但是,如果使用常量字符串:
BYTE *pbBuffer = (BYTE*)"string";
pbBuffer包含整个字符串
我的错误在哪里?