に変換CByteArray
するのCString
は非常に簡単です。しかし、どうすれば逆にできCString
ますCByteArray
か?
質問する
2787 次
2 に答える
4
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());
于 2013-03-18T11:36:02.870 に答える
3
CString
通常、aの1文字は1バイトではないことを考慮する必要があります。
const size_t noBytes = sizeof(CString::XCHAR) * myString.GetLength();
byteArray.SetSize( noBytes );
std::memcpy(
byteArray.GetData(),
reinterpret_cast<BYTE*>(myString.GetBuffer()),
noBytes );
したがって、これが本当に意図された動作であるかどうかを検討する必要があります。
于 2013-03-18T12:10:12.903 に答える