0
我有一個包含UInt8
值的一維C++數組 - 我想轉換這些值並將它們放入一個2D C#byte
數組。目前,我的代碼給了我不正確的值。這是我的代碼:將UInt8 C++值轉換爲C#字節數組
IntPtr ptr = GetDataFromCPPSide();
byte[,] data = new byte[dimension1, dimension2];
for(int i = 0; i < dimension1; i ++)
{
for(int j = 0; j < dimension2; j++)
{
data[i, j] = Marshal.ReadByte((IntPtr)(ptr.ToInt64() + j + i * dimension2) * 1));
}
}
現在,這隻能正確地轉換一些值。我確信它與轉換for
循環中的值的方式有關。我已經在C++端進行了檢查,並且值正在被正確地返回。有任何想法嗎?
當你正在處理字節的東西或反過來轉換*總是*考慮編碼。沒有它是一面大紅旗。 – Tigran
@Tigran你能否詳細說明一下? – Roka545
從一個字節流轉換爲數據類型時,必須使用編碼。它是Unicode嗎? UTF-8?還有別的嗎?沒有必要*表示*是你的問題,但無論如何都要考慮。這就是這是一個評論,而不是一個答案。 – Tigran