06 2010 档案
摘要:CString转char的方法1.传给未分配内存的const char* (LPCTSTR)指针. CString cstr(asdd); const char* ch = (LPCTSTR)cstr; ch指向的地址和cstr相同。但由于使用const保证ch不会修改,所以安全.2.传给未分配内存的指针. CString cstr = "ASDDSD"; char *ch = cstr.GetBuffer(cstr1.GetLength() + 1); cstr.ReleaseBuffer(); //修改ch指向的值等于修改cstr里面的值. //PS:用完ch后,不用d
阅读全文
摘要:error C2018: unknown character '0xa1'错误可能是由中文字符引起的,一般发生在从网页中Copy代码,由于网页中的空格代码或其他代码是中文,但手动敲入中文空格不会引起此问题解决方法:仔细检查代码,尤其是空格,特别是注释之前的空格,你会发现那些注释不再是绿色的,把空格删掉,或者改为英文空格。
阅读全文
摘要:1.Winsock同步阻塞方式的问题在异步非阻塞模式下,像accept(WSAAccept),recv(recv,WSARecv,WSARecvFrom)等这样的winsock函数调用后马上返回,而不是等待可用的连接和数据。在阻塞模式下,server往往这样等待client的连接:while(TRUE){//wait for a connection ClientSocket = accept(ListenSocket,NULL,NULL);if(ClientSocket == INVALID_SOCKET) { ERRORHANDLE } else DoSomething}上述代码简单易用,
阅读全文
摘要:WSAEventSelect模型 WSAEventSelect模型也是I/O模型中较为常用的一个异步模型,它也允许应用程序在一个或多个套接字上,接收以事件为基础的网络事件通知。该模型最主要是将网络事件投递至一个事件对象句柄。 事件通知事件通知模型要求我们的应用程序针对打算使用的每一个套接字,首先创建一个事件对象。创建方法是调用WSACreateEvent函数,它的定义如下:WSAEVENT WSACreateEvent(void); 函数的返回值很简单,就是一个创建好的事件对象句柄。事件对象句柄到手后,接下来必须将其与某个套接字关联在一起,同时注册自己感兴趣的网络事件类型。调用WSAEven.
阅读全文
摘要:名称的英文全称为:Standard Application Framework Extensions 所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。 预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。 编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编...
阅读全文
摘要:以下未经说明,listctrl默认view 风格为report相关类及处理函数MFC:CListCtrl类SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn--------------------------------------------------------------------------------1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解
阅读全文
摘要:我们知道如果试图直接使用c++的成员函数作为回调函数将会发生错误,甚至编译就不能通过。其错误的原因是普通的c++成员函数都隐含了一个传递函数作为参数,亦即“this”指针,由于this指针的作用,使得回掉函数与普通的C++成员函数参数个数不匹配,从而导致回调函数安装失败。要解决这一问题的关键就是不让this指针起作用,通过采用以下两种典型技术可以解决在C++中使用回调函数所遇到的问题。一、利用全局函数来实现回调函数,因为全局函数不属于任何类。那当然就不再拥有this指针,配合一个全局缓冲区则可以实现全局函数与捕获窗口的数据通信。二、利用静态成员函数机制来实现,静态成员函数不使用this指针作.
阅读全文
摘要:Format是一个很常用,却又似乎很烦的方法,以下是它的完整概貌,以供大家查询之用: 格式化字符串forma("%d",12)意思是将一个整形的格式化的字符(我认为是保持其形状不变) 1).格式说明总是以%字符开始,以下是不同类型数据的格式方式%号后的说明: d输出带符号十进制数 o输出无符号八进制数 x输出无符号十六进制数 u输出无符号数 c输出单个字符 s输出一串字符 f输出实数(6位小数) e以指数形式输出实数 g选用f与e格式中输出宽度较小的格式,不输出0 ld输入输出long型数据 lf输入输出double型数据 m数据输出宽度为m .n输出小数位数为n 一、字符
阅读全文
摘要:wpcap的过滤器是以已声明的谓词语法为基础的。过滤器是一个ASCII字符串,它包含了一个过滤表达式。pcap_compile()把这个表达式编译成内核级的包过滤器。这个表达式会选择那些数据包将会被堆存。如果表达式没有给出,那么,网络上所有的包都会被内核过滤引擎所认可。不然,只有那些表达式为'true'的包才会被认可。这个表达式包含了一个或多个原语。原语通常包含了id(名字或序列),这些id优先于限定词。以下是三种不同的限定词: 输入(type)指明了哪些东西是id所代表的。可能的输入是host,net和port。比如:`host foo',`net 128.3'
阅读全文
摘要:在以太网环境下将网卡设置在混杂模式下很容易获得整个物理链路上的数据帧,即你可以监听整个网段的主机数据包,可以实现Sniffer的功能,但是在无线局域网环境下(WLAN, IEEE802.11协议族),设置为混杂模式却不能嗅获到数据包,为了解决这个问题我也尝试了很多方面,在一次偶然的情况下看到了一种解决方法,那就是不设置为,打开函数 pcap_open_live(const char* device, int snaplen, int promisc, int to_ms, char *ebuf ) 中的第三项设置为0即可获得本机的所以数据帧,这个时候用函数获得数据包时会发现,得到的802.1.
阅读全文
摘要:/**************************************回溯算法求集合的幂集*****************************************回溯算法的求解过程实质上是遍历一颗"状态树"(又称解空间树)的过程,只是这棵树不是遍历前预先建立的,而是隐含在遍历过程中。而对解空间树的遍历又分为深度优先搜索(DFS)和广度优先搜索(BFS),在算法课本上把DFS称为回溯法,把BFS称为分支界限法。更进一步的要求是在搜索过程中不断剪枝,跳过肯定无解的情况,提高效率。数据结构课本149页的题目演示了最简单的回溯算法*****************
阅读全文
摘要:首先简述一下题目 :有一个正方形水池,长100,宽100, 池塘的正中心在坐标原点上,x轴向右为正,y轴向上为正,所以池塘的右上角坐标是(50,50)。池塘内分布着一些鳄鱼,鳄鱼的数目和坐标都已知(注1),邦德的最大跳跃距离也已知(注1)。邦德踩着鳄鱼头逐步跳上岸,问:最少的步数是多少?如果能跳出的话请给出一种跳法。这道题乍一看很晕,待我建模给大家看。我们假设从原点O,第一次能跳到的鳄鱼编号为A1,A2,...,踩着A1能跳到的鳄鱼为B11,B12,....,踩着A2能跳到的鳄鱼为B21,B22,......。也就是说,邦德能跳的路线可以由如下树性结构来表示。 O / | A1 A2 A3 /
阅读全文
摘要:memset函数用法1。void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值c。2。例子#includevoid main(){char *s="Golden Global View";clrscr();memset(s,'G',6);printf("%s",s);getchar();return 0;} 3。memset()函数常用于内存空间初始化。如:char str[100];memset(str,0,100);4。memset()的深刻内涵:用来对一段内
阅读全文
摘要:/*________________________________________________POJ 1008题_________________________________________________ 玛雅历 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 37991 Accepted: 11601 Description: 上周末,M.A. Ya教授对古老的玛雅有了一个重大发现。从一个古老的节绳(玛雅人用于记事的工具)中,教授发现玛雅人使用了一...
阅读全文