2017-04-15 60 views
0

我要迁移下面的代码在C++到C#的reinterpret_cast在C#中,从C++迁移代码以C#

https://www.unknowncheats.me/forum/counterstrike-global-offensive/186820-cs-matchid-4.html

我的问题了这里, 我怎样才能做到这一点在C#

uint64_t matchid = *reinterpret_cast<uint64_t*>(result.data()); 
uint64_t outcomeId = *reinterpret_cast<uint64_t*>(result.data() + 8); 
uint16_t tokenId = *reinterpret_cast<uint16_t*>(result.data() + 16); 

而结果必须是这个

matchId:3203527750019186923, outcomeId:32035318388280526 97, tokenId:13431

感谢

回答

0

在代码有一个std::array<char, 18> result。在C#中它将是一个byte[] result

所以:

ulong matchId = BitConverter.ToUint64(result, 0); 
ulong outcomeId = BitConverter.ToUint64(result, 8); 
ulong tokenId = BitConverter.ToUint64(result, 16);