INT32 CNetData::DelString(CHAR *pszOut, INT32 iSize) { UINT16 wLen = 0; size_t iLen = 0; if(-1 == DelWord(wLen)) return -1; if(m_iPos + (INT32)wLen > m_iSize) return -1; /* if( INT32(wLen + 1) > iSize ) return -1; */ if( INT32(wLen) > iSize ) return -1; //去掉libiconv库的依赖,避免iphone可能的移植问题,要发送的字符串内容全是utf8或者单字节字符集 /* if ((m_iCharsetNet >= 0) || (m_iCharsetHost >= 0)) { if (m_iCharsetNet != m_iCharsetHost) { INT32 iResult = 0; iLen = iSize; iResult = SDIconvCovert(g_szCharset[m_iCharsetHost], g_szCharset[m_iCharsetNet], m_pBuf+m_iPos, wLen, pszOut, iLen); if (0 != iResult) { return -1; } pszOut[wLen] = '\0'; m_iPos += wLen; return m_iPos; } } */ memcpy(pszOut, m_pBuf+m_iPos, wLen); pszOut[wLen] = '\0'; m_iPos += wLen; return m_iPos; }
int CNetData::DelString(char *pszOut, int iSize) { unsigned short wLen = 0; if(-1 == DelWord(wLen)) return -1; if(m_iPos + (int)wLen > m_iSize) return -1; if( int(wLen + 1) > iSize ) return -1; memcpy(pszOut, m_pBuf+m_iPos, wLen); pszOut[wLen] = '\0'; m_iPos += wLen; return m_iPos; }
INT32 CNetData::DelWString(WCHAR *pszOut, INT32 iSize) { UINT16 wLen = 0; size_t iLen = 0; if(-1 == DelWord(wLen)) return -1; if(m_iPos + (INT32)wLen > m_iSize) return -1; if( INT32(wLen + 1) > iSize ) return -1; //去掉libiconv库的依赖,避免iphone可能的移植问题 /* if ((m_iCharsetNet >= 0) || (m_iCharsetHost >= 0)) { if (m_iCharsetNet != m_iCharsetHost) { iLen = iSize * sizeof(WCHAR); INT32 iResult = 0; iResult = SDIconvCovert(g_szCharset[m_iCharsetHost], g_szCharset[m_iCharsetNet], (CHAR*)(m_pBuf+m_iPos), wLen, (CHAR*)pszOut, iLen); if (0 != iResult) { return -1; } pszOut[iLen / sizeof(WCHAR)] = L'\0'; m_iPos += wLen; return m_iPos; } } */ memcpy(pszOut, m_pBuf+m_iPos, wLen); pszOut[wLen / sizeof(WCHAR)] = L'\0'; m_iPos += wLen; return m_iPos; }