摘要: ①、映射机制的原理Windows 下的程序包括 Windows 系统都是基于消息机制的。MFC消息映射机制的具体实现方法是:在每个能接收和处理消息的类中,定义一个消息和消息响应函数的静态对照表,即消息映射表;在消息映射表中,消息与对应的消息处理函数指针是成对出现的。某个类能处理的所有消息及其对应的消息处理函数的地址都列在这个类所对应的静态表中;当有消息需要处理时,程序只要搜索该消息静态表,查看表中是否含有该消息,就可以知道该类能否处理此消息;如果能处理该消息,则同样依照静态表能很容易找到并调用对应的消息处理函数!②、一般情况下,一个MFC的消息映射在程序中有三处相关信息:1》消息响应函数的声明 阅读全文
posted @ 2013-07-17 21:56 songnb_7 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 在TCP\UDP编程中,系统有一个接收数据的缓存,这个缓存负责将网络传过来的数据放入其中,然后recv是从这个系统缓存取数据,系统默认的SOCKET接受缓存的大小为8688B(8.6K左右),如果sock函数recv或recvFrom从系统缓存中接受数据太慢,那么系统接受到新数据后就会将原缓存给覆盖了,这样在次调用recv函数就获取到了新数据,老数据就丢失了,这时候就要使用setsockopt方法将系统缓存开到32K最合适。 阅读全文
posted @ 2013-07-15 10:17 songnb_7 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 其实类的静态函数就跟全局函数是一个样子的, 只是调用的时候要加下个类修饰符而以.至于为什么不能是非静态成员函数呢, 因为非静态成员函数都会在参数列表中加上一个this指针为为参数, 这样的话你写的线程函数就不符合调用规定了.比如 DWORD WINAPI ThreadFun(LPVOID); 是非静态的,实际编译后,就会变成DWORD WINAPI ThreadFun(LPVOID, CMyClass *this);这个函数就明显不能作为线程的函数了, 因为多了个参数.所以编译就过不了了.类的静态函数不属于该类的任何一个对象,而是属于类本身,所以不受对象局部变量的影响。静态成员函数不可以调用该 阅读全文
posted @ 2013-07-11 19:31 songnb_7 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 在编写网络程序的时候,必须链接ws2_32.lib文件。在vc6.0中,是在工程设置link下一个编辑框内添加ws2_32.lib就可以了。但是在VS2008中找不到这个选项。VS2008添加方法如下:方法一:工程propertieslinker->input->additional depandencies方法二:直接包含#include#pragma comment(lib,"ws_32.lib") 阅读全文
posted @ 2013-07-11 18:45 songnb_7 阅读(1184) 评论(0) 推荐(0) 编辑
摘要: 构造函数没有返回类型 阅读全文
posted @ 2013-07-10 22:48 songnb_7 阅读(126) 评论(0) 推荐(0) 编辑
摘要: //函数定义char &get_val(string &str,string::size_type ix){ return str[ix];}//函数调用main(){ string s("123456"); cout<<s<<endl; get_val(s,0)='a'; cout<<s<<endl; }上面程序返回一个左值千万不要返回局部对象的引用,可以返回局部对象的非引用,因为引用是局部变量的本身,本身已经在函数结束的时候死亡;而非引用是局部变量的副本,const string & 阅读全文
posted @ 2013-07-09 11:08 songnb_7 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。(虽然比int char这样build-in类型复杂的多,但首先要理解它们一样是类型)。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针。如果还有一个变量myclass mz,mz的this就是指向mz的指针。 这样就很容易理解this 的类型应该是myclass *,而对其的解引用*this就应该是一个myclass类型的变量。通常在c 阅读全文
posted @ 2013-07-03 10:18 songnb_7 阅读(169) 评论(0) 推荐(0) 编辑
摘要: MATLAB中提供的线型及颜色属性:如:plot(x1,y1,'r-'),表示,用红色实线画出图形线型说明标记符说明颜色说明-实线(默认)+加号符r红色--双划线o空心圆g绿色:虚线*星号b蓝色:.点划线.实心圆c青绿色x叉号符m洋红色s正方形y黄色d菱形k黑色^上三角形w白色v下三角形>右三角形<左三角形p五角星h六边形 阅读全文
posted @ 2013-06-25 21:10 songnb_7 阅读(716) 评论(0) 推荐(0) 编辑
摘要: unsigned long _beginthreadex( void *security, unsignedstack_size, unsigned ( __stdcall *start_address)( void * ), void *arglist, unsignedinitflag, unsigned *thrdaddr);//第1个参数:安全属性,NULL为默认安全属性//第2个参数:指定线程堆栈的大小。如果为0,则线程堆栈大小和创建它的线程的相同。一般用0//第3个参数:指定线程函数的地址,也就是线程调用执行的函数地址(用函数名称即可,函数名称就表示地址)//第4个参数:传递给线程 阅读全文
posted @ 2013-06-06 11:55 songnb_7 阅读(599) 评论(0) 推荐(0) 编辑
摘要: 中国有句老话,“三天打鱼两天晒网”。假设渔民老张从1990年1月1日开始“三天打鱼两天晒网”,那么请你帮助推算出在以后某一天中,老张是在“打鱼”,还是在“晒网”。输入:第一行是测试的组数。以后每一行是一组要测试的时间,有三个数据,分为表示为年、月、日。输出:根据输入的日期,打印出相应的情况(打鱼还是晒网),具体格式见测试用例。重点是找出 两个日期之间有多少天 1 // wanmei_test2.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 6 #include <stdio.h> 7 #define MA 阅读全文
posted @ 2013-05-19 20:52 songnb_7 阅读(627) 评论(0) 推荐(0) 编辑