char raw_data[] = {0x34, 0xA4, 0xB4, 0xC4 };long result = *reinterpret_cast<long *>(raw_data);
long result;char raw_data[] = {0x34, 0xA4, 0xB4, 0xC4 };memcpy(&result, raw_data, sizeof(result));
#pragma pack(push,1) union u_myDWORD { struct { BYTE m_by0; BYTE m_by1; BYTE m_by2; BYTE m_by3; }; DWORD m_dwd; u_myDWORD() { m_dwd=0; } }; #pragma pack(pop) u_myDWORD d; d.m_by0=...; d.m_by1=...; d.m_by2=...; d.m_by3=...;
DWORD dwd=0;*(0+(BYTE*)&dwd)=...; //0-й байт*(1+(BYTE*)&dwd)=...; //1-й байт*(2+(BYTE*)&dwd)=...; //2-й байт*(3+(BYTE*)&dwd)=...; //3-й байт
long Raw2long(const char * data){ long result = 0; std::copy(data, data + sizeof(long), reinterpret_cast<char *>(&result)); return 0;}