Mam krótki kodzik i zalezy mi na tym zeby go przepisac na pascala. Próbuje juz dlugo ale nie znam dobrze C i nic mi nie wychodzi :).
dwp = (DWORD *)(cMsg + DEF_INDEX4_MSGID);
*dwp = dwMsgID;
wp = (WORD *)(cMsg + DEF_INDEX2_MSGTYPE);
*wp = NULL;
cp = (char *)(cMsg + DEF_INDEX2_MSGTYPE + 2);
ZeroMemory(cTxt, sizeof(cTxt));
memcpy(cTxt, m_cAccountName, 10);
memcpy(cp, cTxt, 10);
cp += 10;
ZeroMemory(cTxt, sizeof(cTxt));
memcpy(cTxt, m_cAccountPassword, 10);
memcpy(cp, cTxt, 10);
cp += 10;
memcpy(cp, m_cWorldServerName, 30);
cp += 30;
iRet = m_pLSock->iSendMsg(cMsg, 56, cKey);
drugi kodzik:
int XSocket::iSendMsg(char * cData, DWORD dwSize, char cKey)
{
WORD * wp;
int i, iRet;
if (dwSize > m_dwBufferSize) return DEF_XSOCKEVENT_MSGSIZETOOLARGE;
if (m_cType != DEF_XSOCK_NORMALSOCK) return DEF_XSOCKEVENT_SOCKETMISMATCH;
if (m_cType == NULL) return DEF_XSOCKEVENT_NOTINITIALIZED;
m_pSndBuffer[0] = cKey;
wp = (WORD *)(m_pSndBuffer + 1);
*wp = (WORD)(dwSize + 3);
memcpy((char *)(m_pSndBuffer + 3), cData, dwSize);
if (cKey != NULL) {
for (i = 0; i < (int)(dwSize); i++) {
m_pSndBuffer[3+i] += (i ^ cKey);
m_pSndBuffer[3+i] = (char)( m_pSndBuffer[3+i] ^ (cKey ^ (dwSize - i)) );
}
}
if (m_bIsWriteEnabled == FALSE) {
iRet = _iRegisterUnsentData(m_pSndBuffer, dwSize +3);
}
else iRet = _iSend(m_pSndBuffer, dwSize + 3, TRUE);
if (iRet < 0) return iRet;
else return (iRet - 3);
}
Jesli ktos znalazl choc troche czasu zeby sie pomeczyc by to przetlumaczyc - wielkie dzieki :) </cpp>