byte gbIncomingBuffer[PHYSICAL_MAX_DATA_LEN]; UINT CCommunication::ReadfromBridge(LPVOID pParam) { ... //Abspeichern der ankommenden Bytes in gbIncomingBuffer; //funktioniert ... // in gbIncomingBuffer steht:gbIncomingBuffer={0,3,255,121,...} ProcessData(); } void CCommunication::ProcessData(void) { byte *pBufferPosition=&gbIncomingBuffer[0]; unsigned short usvar1; unsigned short usvar2; memcpy( &usvar1, pBufferPosition, sizeof(usvar1)); pBufferPosition+=sizeof(usvar1); memcpy( &usvar2, pBufferPosition, sizeof(usvar2)); pBufferPosition+=sizeof(usvar2); ... ... //in usvar1 steht alles andere als 3 drin //und in usvar2 soll 65401 stehen, ist es aber nicht }