示例#1
0
    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;
    }
示例#2
0
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;
}
示例#3
0
    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;
    }