Convert z hex do struct


(Kamil Wojtasik) #1

Mam problem :

struct SPacketHeader {

	unsigned __int16 Size;

	unsigned __int8 Type;

};


struct SPlayer {

	SPacketHeader PacketHeader;

	unsigned __int32 PID;

	unsigned char Nickname[16];


};




packet: (char*)

RECV PACKET SIZE:103 Type : 0x32

   67	00 |32 |32 60 e6 03 54 65 72 72 69 74 6c 65 5a g.22`Š.TerritleZ

   size |type |pid |name



SPlayer *Player = (SPlayer *)packet;



unsigned __int16 Size; łąduje 67 00 // dobrze 


unsigned __int8 Type; łąduje 32 // dobrze


unsigned __int32 PID; ładuje 32 60 e6 03 54 powinien przyjać32 60 e6 03 (54 jest z nicku /// tu źle ładuje



unsigned char Nickname[16]; ładuje 65 72 72 69 74 6c 65 5a ( powinien 54 65 72 72 69 74 6c 65 5a ) // tu źle ładuje .. ucina pierwszą liter stringu

Dlaczego tak się dzieje :expressionless: i jak to naprawić

tutaj jakby ktoś chciał spróbować naprawić :


(Fiołek) #2

Dodaj wyrównywanie do jednego bajta przy obu strukturach(#pragma pack(push, 1)).

EDIT: @down: wypraszam sobie :stuck_out_tongue_winking_eye:


(Kamil Wojtasik) #3

kocham cię!