#pragma once #ifndef __NO_DEF_STD_TYPES typedef unsigned char byte; typedef unsigned short word; typedef unsigned long dword; #endif #pragma pack(push,1) struct TCommand { byte size; byte command; }; #define DECLARE_CMD_DATA(cmd) cmd##_T cmd##_D #define DECLARE_CMD(cmd, var) cmd##_T var; \ var.size = sizeof(var); \ var.command = cmd; /* * В классе CSocket должен быть реализован метод * write(const char *buffer, size_t size) */ template bool sendCommand(CSocket &socket, const TCommand &command) { return socket.write(reinterpret_cast(&command), command.size); } #pragma pack(pop)