D:\stock\Tskingfromgoogle\src\NetTS\TW.cpp
Convert struct to bytes
//Convert struct to bytes 2019/05/20 by freeman int ConstructLoginBuffer(BYTE* buffer, size_t maxlen, LPCTSTR lpszUser, LPCTSTR lpszPasswd) { int nLen = 0; int nLenUser = strlen(lpszUser); int nLenPasswd = strlen(lpszPasswd); TW_LOGIN packet; memset(&packet,0,sizeof(packet)); packet.m_header.m_magic = TW_MAGIC; if(maxlen < (int)(5 + sizeof(TW_HEADER) + nLenUser + nLenPasswd)) { nLen = 5 + sizeof(TW_HEADER); return -1; } packet.m_name_len = (WORD)nLenUser; memcpy(packet.m_data, lpszUser, nLenUser); *(WORD*)(packet.m_data + nLenUser) = (WORD)nLenPasswd; memcpy(packet.m_data + nLenUser + sizeof(WORD), lpszPasswd, nLenPasswd); nLen = 5 + sizeof(TW_HEADER) + nLenUser + nLenPasswd; ConstructLength(packet.m_header, nLen - sizeof(packet.m_header)); if(buffer) memcpy(buffer, &packet, nLen); return nLen; }