return (unsigned char *) send_im_tail} // 处理普通的 QQ 消息 void MyQQ::qq_process_recv_normal_im(unsigned char * data, unsigned char ** cur sor, int len) { int bytesqq_recv_normal_im_common *commonqq_recv_normal_im_unprocessed *im_unprocessedif (*cursor >= (data + len - 1)) { return} else common = (qq_recv_normal_im_common *)malloc(sizeof(qq_recv_normal_im_commo n))bytes = qq_normal_im_common_read(data, cursor, len, common)if (bytes <0) { return} switch (common->normal_im_type) { case QQ_NORMAL_IM_TEXT: qq_process_recv_normal_im_text (data, cursor, len, common)breakcase QQ_NORMAL_IM_FILE_REJECT_UDP: //qq_process_recv_file_reject (data, cursor, len, // common->sender_uid, gc)breakcase QQ_NORMAL_IM_FILE_APPROVE_UDP: //qq_process_recv_file_accept (data, cursor, len, // common->sender_uid, gc)breakcase QQ_NORMAL_IM_FILE_REQUEST: //qq_process_recv_file_request (data, cursor, len, /锋耐/ common->sender_uid, gc)breakcase QQ_NORMAL_IM_FILE_CANCEL: //qq_process_recv_file_cancel (data, cursor, len, // common->sender_uid, gc)breakcase QQ_NORMAL_IM_FILE_NOTIFY: /雹敏/qq_process_recv_file_notify (data, cursor, len, //银肆春 common->sender_uid, gc)breakdefault: return} // normal_im_type g_free (common->session_md5)} void MyQQ::qq_process_recv_normal_im_text(unsigned char * data, unsigned char ** cursor, int len, qq_recv_normal_im_common * common) { short gaim_msg_typechar *namechar *msg_with_gaim_smileychar *msg_utf8_encodedqq_recv_normal_im_text *im_textif (*cursor >= (data + len - 1)) { return} else im_text = (qq_recv_normal_im_text *)malloc(sizeof(qq_recv_normal_im_text))im_text->common = commonread_packet_w(data, cursor, len, &(im_text->msg_seq))read_packet_dw(data, cursor, len, &(im_text->send_time))read_packet_b(data, cursor, len, &(im_text->unknown1))read_packet_b(data, cursor, len, &(im_text->sender_icon))read_packet_data(data, cursor, len, (unsigned char *) &(im_text->unknown2), 3)read_packet_b(data, cursor, len, &(im_text->is_there_font_attr))read_packet_data(data, cursor, len, (unsigned char *) &(im_text->unknown3), 4)read_packet_b(data, cursor, len, &(im_text->msg_type))if (im_text->msg_type == QQ_IM_AUTO_REPLY) { im_text->is_there_font_attr = 0x00im_text->msg = (unsigned char *)malloc(1024)memcpy(im_text->msg,*cursor, data + len - *cursor)} else { if (im_text->is_there_font_attr) { im_text->msg = (unsigned char *)malloc(1500)memcpy(im_text->msg,*cursor, strlen((const char *)*cursor))im_text->msg[strlen((const char *)*cursor)] = 0} else { im_text->msg = (unsigned char *)malloc(1024)memcpy(im_text->msg,*cursor, data + len - *cursor)im_text->msg[data + len - *cursor] = 0} } MessageText = im_text->msg// 如果需要自动回复 if(Status == 3) { //I_QQAutoReply() 函数获取预先设置的自动回复消息内容,需自己实现 char* MText = I_QQAutoReply()QQSendTextMessage(common->sender_uid,MText,0x01)} // 在主界面中显示消息 //I_QQReceiveMessage((char *)MessageText,common->sender_uid)} int MyQQ::qq_normal_im_common_read(unsigned char * data, unsigned char ** curs or, int len, qq_recv_normal_im_common * common) { int bytesbytes = 0bytes += read_packet_w(data, cursor, len, &(common->sender_ver))bytes += read_packet_dw(data, cursor, len, &(common->sender_uid))bytes += read_packet_dw(data, cursor, len, &(common->receiver_uid))common->session_md5 = (unsigned char *)malloc(QQ_KEY_LENGTH)memcpy(common->session_md5,*cursor, QQ_KEY_LENGTH)bytes += QQ_KEY_LENGTH*cursor += QQ_KEY_LENGTHbytes += read_packet_w(data, cursor, len, &(common->normal_im_type))if (bytes != 28) { return -1} return bytes}如果你希望发晌好布到网上
的话,建议用 Visual Studio 2008 中的 C# 或者 Basic,不建议使用 C++,因为从 2008
版开始,C# 和 Basic 支持 WPF,而 C++ 不支持,所以说 C++ 显得有些落后,只是保留了原有功能以供向 C# 或 Basic
过渡。
WPF 就是网络程序,与普通窗体相比较,WPF 的界面要简单一些,不如大型游戏,但完全能够制作出类似于 QQ 2009 的界面,可以加入 Ps 的图片,而且有 Vista 优化,基于 Framework 3.5。
2008 版 C# 和 Basic 代码几乎一样,功能完全相闭谨漏同,区别只在于一些语句的写法不同,C# 惯用符号,而 Basic 惯用英文单词。
看起来你还没有选择好一种合适的语言。我建议你使用 Basic 语言,Basic 语言符号很少,容易查错,C# 的代码看起来要清爽一些。另外,ASP.NET 中你可能要用到 VBScript 代码,学 Basic 正合适。
用 WPF 也有缺点,比如基于 Framework 3.5,Visual Studio 2008 要求系统版本最低为 6(但你的聊轿烂天程序可以安装在 WinXP 上)。
聊天软件需要有服务器支持,而且代码要有一个团队共同完成,非常复杂。
你说的这个软件我本人没用过 不过我用制作QQ登陆框是用另外的软件制肢仔作的 HA-eXeScope rashacker 两款软件各自功用不同 但大体使用手法洞毕也不太一样的 我是两款软件合起来使用 不知道我纳饥芹说的合不合你胃口 如果你要下的话可以在 天空 和非凡软件园里找到 教程可以到网上去找 那里都有的 做出的效果都非常漂亮 祝你好运
评论列表(0条)