0
我知道將CByteArray
轉換爲CString
非常簡單。但是我怎樣才能做到這一點 - 從CString
到CByteArray
?如何將CString轉換爲CByteArray?
我知道將CByteArray
轉換爲CString
非常簡單。但是我怎樣才能做到這一點 - 從CString
到CByteArray
?如何將CString轉換爲CByteArray?
CString類的GetBuffer()方法返回你需要的數組。之後,您可以使用memcpy或其他類似的函數將其複製到CByteArray對象。
CString csData = L"someData";
CByteArray byteArr;
BYTE *pByteArray = (PBYTE)(LPCTSTR)csData.GetBuffer();
byteArr.SetSize(csData.GetLength());
memcpy(byteArr.GetData(), pByteArray, csData.GetLength());
您需要考慮的是,CString
中的1個字符通常不是1個字節。
const size_t noBytes = sizeof(CString::XCHAR) * myString.GetLength();
byteArray.SetSize(noBytes);
std::memcpy(
byteArray.GetData(),
reinterpret_cast<BYTE*>(myString.GetBuffer()),
noBytes);
所以你需要考慮這是否真的是預期的行爲。