网络编程代码qq(linux网络编程)

2023-11-11 11:33:44 数码极客 bianji01

 

QQ到底是用哪种编程语言编写的啊?

C++哦,当然也有用到其它的啦,但核心运行用它来

C++作用很大的,可以对数据库访问,网络编程,WINDOWS里面的编程。。。。。。。

*.db或*.dbs就与DATABASE数据库有关的文件,

.cifg,就是configuration配置,可能是自己建立的一些文件吧,用于保留用户的设置有关等

至于改名后还能运行,因为操作系统知道它改名了,知道是启用它的,其它文件就不要

随便乱改,因为程序里用的时候,那名字已经固定是那样了,改了就找不到了,出错哦

怎么将网络编程的代码变成窗体口调试,就是写出一个类似于qq的东西,用c语言。谢谢

首先,楼主所谓的学C,学算法,实际上就是说学会了编写代码,即知道让计算机先干什么,再干什么,最后得什么结果。他遇到的问题是,没有一个界面让他输入数据,因为他看到的几乎所有软件,都具有输入框、“确定”、“取消”、“关闭”之类的按钮,而他不知道从哪儿弄到这些按钮。

其次,我觉得楼主要有必要建立一些“面向对象程序设计”的观念,具体我不多说,楼主可以自己查。

希望大家不要嫌我罗嗦,因为我觉得,要为楼主解决问题很简单,但要让楼主知道为什么会有这样的迷惑,则须多说几句。

在上世纪九十年代以前的微机,也就是人们说的286,386时代,计算机的运行速度还很低,那时候的计算机几乎不需要用到鼠标,也几乎没什么图形界面,没音响,没彩色……当然也没有windows操作系统,人们操作计算机,大都是用的DOS操作系统。屏幕是黑的,字符是白的,人们输入一组字符串组成的命令,回车,计算机就开始执行,执行完后,再由人输入下一组命令。其界面相信楼主见识过,因为楼主似乎能将原代码变成exe文件,运行时跳出一个黑框来,程序在黑框中运行。实际上,那个黑框就是DOS操作系统的界面,只不过以前的计算机上,这个界面占据了整个屏幕,而现在,却是一个窗口。也就是说,windows操作系统为了方便老用户,提供了这样一个功能:可以运行DOS操作系统的程序,只不过不是占据整个屏幕,而是将其显示在一个窗口中。人们可在里面运行DOS程序,就同当年使用DOS操作系统一样。楼主所学的TC,就是那个时代的程序设计软件,由于几乎不需用到图形界面,当然也没有提供相应的按钮,窗体等功能。假如你非要一个按钮,那么你先得掌握绘图语句,如画线,画点,填色等等。在公元2000年以前,湖南教育界的计算机一级考试系统界面中的那几个按钮就是这样完成的。另外,我最初学用qbasic语言设计界面时,也是这样做的,画个按钮形状,当遇到回车键时,再画个被按下去的形状,半秒种后让它又恢复弹起的形状……总之,麻烦。

随着计算机软、硬件的高速发展以及鼠标,音响,图片,动画在计算机中的大量应用,DOS操作系统已如昔日黄花,退出了历史舞台。windows的普及,使得人们能够更方便,直观的操作电脑。那么新兴起的软件,当然需要经常用到诸如菜单、按钮,图标,滚动条,进度条,文本框之类的东西,我们把它叫做控件,在面像对像程序设计中,一个已绘好的控件就可以理解为一个对像。显然,每编一个程序都去画这些东西是相当烦人的,所以微软公司在后来提供的软件开发工具,比如visualc++中,就直接提供这些控件让人们使用,因为绘制各种控件的方式虽然麻烦,但其过程大致是相同的,所以人们只需给出诸出高度,宽度,名称之类的参数,而把绘制的过程交给了编译程序,就好像在word里面画一张表格一样,你只需用鼠标一拖,它就自己给你画好了。实际上产生的绘制语句代码,可以从头文件里找到,不过我估计没多少人去研究这些无多大意义的过程。为了便于理解,以VC++6.0为例:启动程序--新建--在“工程”栏选择“MFCAppWizard”,工程名字随便填,确定--单选“基本对话框”,然后点“完成”--最后确定。这时你可以见到一个面板,他就是你将要设计的程序的界面。初始时只有“确定”、“取消”两个按钮,当然,旁边还有一个工具箱,上面有很多其它的控件,需要的话你自己加,比如你想要两个框框输入数据,就可从工具箱中选“编辑框”,画两个就是。

QQ代码有哪些?

求一QQ源代码(C++语言版的)

return (unsigned char *) send_im_tail; } // 处理普通的 QQ 消息 void MyQQ::qq_process_recv_normal_im(unsigned char * data, unsigned char ** cur sor, int len) { int bytes; qq_recv_normal_im_common *common; qq_recv_normal_im_unprocessed *im_unprocessed; if (*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); break; case QQ_NORMAL_IM_FILE_REJECT_UDP: //qq_process_recv_file_reject (data, cursor, len, // common->sender_uid, gc); break; case QQ_NORMAL_IM_FILE_APPROVE_UDP: //qq_process_recv_file_accept (data, cursor, len, // common->sender_uid, gc); break; case QQ_NORMAL_IM_FILE_REQUEST: //qq_process_recv_file_request (data, cursor, len, // common->sender_uid, gc); break; case QQ_NORMAL_IM_FILE_CANCEL: //qq_process_recv_file_cancel (data, cursor, len, // common->sender_uid, gc); break; case QQ_NORMAL_IM_FILE_NOTIFY: //qq_process_recv_file_notify (data, cursor, len, // common->sender_uid, gc); break; default: 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_type; char *name; char *msg_with_gaim_smiley; char *msg_utf8_encoded; qq_recv_normal_im_text *im_text; if (*cursor >= (data + len - 1)) { return; } else im_text = (qq_recv_normal_im_text *)malloc(sizeof(qq_recv_normal_im_text)); im_text->common = common; read_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 = 0x00; im_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 bytes; bytes = 0; bytes += 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_LENGTH; bytes += read_packet_w(data, cursor, len, &(common->normal_im_type)); if (bytes != 28) { return -1; } return bytes; }

声明:易趣百科所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系315127732@qq.com
广告位招租
横幅广告