摘要: 为什么呢? 答案很简单,#define WIN32_LEAN_AND_MEAN的作用是不加载MFC所需的模块,这样我们的项目在编译链接的时候就会只包含尽可能精简的内容,这样组最后生成的模块速度更快,体积更小。 所以包含了这一句后编译速度明显快了很多阅读全文
posted @ 2012-06-01 10:35 风吹云动 阅读(0) 评论(0)  编辑
摘要: 当用户在视频网站的搜索框中键入关键词然后点击确定时,浏览器就会发出一个GET请求,其url就包含了该关键词。 所以只需对该url进行分析和提取,就可以成功滤出搜索关键词。 以优酷为例,打开优酷网站www.youku.com,在搜索输入框中键入“新西游记”然后点击确定,此时页面会跳转至http://www.soku.com/search_video/q_%E6%96%B0%E8%A5%BF%E6%B8%B8%E8%AE%B0。而其中“%E6%96%B0%E8%A5%BF%E6%B8%B8%E8%AE%B0”就是“新西游记"的UTF-8编码。我们要做的工作就是提取出这段字符串。自然最便捷阅读全文
posted @ 2012-02-20 17:56 风吹云动 阅读(22) 评论(0)  编辑
摘要: 这是因为string和csting采用了Copy-On-Write技术,Copy-On-Write使用了“引用计数”,这是一种内存共享机制。假设有一个动态链接库(叫myNet.dll或myNet.so)中有这样一个函数返回的是string类:string GetIPAddress(string hostname){static string ip;…………return ip;}而你的主程序中动态地载入这个动态链接库,并调用其中的这个函数:main(){//载入动态链接库中的函数hDll = LoadLibraray(…..);pFun =GetModule(hDll, “GetIPAddres阅读全文
posted @ 2011-08-29 17:16 风吹云动 阅读(239) 评论(0)  编辑
摘要: boost基本上啥都有,用不着用某人写的不完整的,缺陷的代码。 ASIO攻破 花了足足3天时间,外加1天心情休整,终于在第5天编写出了一个能运行的基于asio和thread_group的框架,差点没气晕过去,把源码都看懂了才感觉会用了。测试了一下,debug下一万次回应耗时800+毫秒,release下是200+毫秒,机器配置双核2.5G英特尔,4个线程并行工作,无错的感觉真好,再也不用担心iocp出一些奇怪的问题啦,因为是巨人们写的实现,呵呵。 进入正题,简要说一下asio的实现原理吧。在win32平台上,asio是基于IOCP技术实现的,我以前也用过IOCP,却没想到居然能扩展成这样,真.阅读全文
posted @ 2011-08-18 11:33 风吹云动 阅读(424) 评论(0)  编辑
摘要: 假设接受文件的网页程序位于http://192.168.24.56/logsys/home/uploadIspeedLog!doDefault.html.假设我们要发送一个图片文件,文件名为“kn.jpg”, 首先客户端链接 192.168.24.56 后, 应该发送如下http 请求: POST/logsys/home/uploadIspeedLog!doDefault.htmlHTTP/1.1 Accept: text/plain, */* Accept-Language: zh-cn Host: 192.168.24.56 Content-Type:multipart/f...阅读全文
posted @ 2011-07-26 15:27 风吹云动 阅读(981) 评论(2)  编辑
摘要: libboost_regex-vc100-mt-gd-1_46_1.lib位于boost/boost_1_46_1/stage/lib下,如果没有,那么你需要再编译一下boost库打开命令行窗口切换到 boost库的根目录。我的是D:/boost/boost_1_46_1输入bootstrap(如果之前已经编译出bjam.exe了,此步跳过)然后有几行输出再输入./bjam类库编译开始(这个真是个漫长的过程 ………………)哎 等了 1个小时了还得等再编译一会儿吧N久之后 编译好了在工程中添加库引用属性>连接器>常规 > 附加目录库 这里写入E:/mylib/boost_1_4阅读全文
posted @ 2011-07-22 09:48 风吹云动 阅读(682) 评论(0)  编辑
摘要: 无法链接,必是lib静态库的问题。 该函数引用时的一般写法:#include<comutil.h>//_com_util::ConvertBSTRToString#pragmacomment(lib,"comsupp.lib")//_com_util::ConvertBSTRToStringstrTxt1=_com_util::ConvertBSTRToString(bstrTxt1);//调用例子 经查阅MSDN文档,发现该函数在Unicode编码中存在相应的Unicode版本的lib文件,而如果此时链接MultiChar多字节版本的lib文件,则会出现错误。阅读全文
posted @ 2011-07-14 11:50 风吹云动 阅读(209) 评论(0)  编辑
摘要: 之前开发一直用vc6,换到vs2010下后,其默认的快捷键设置感觉不是很方便,后来发现vs可以更改快捷键设置为以前版本的开发工具的设置。于是改了,之后发现确实方便多了 具体修改方法如下: Tools-Options...-Environment-Keyboard-Apply the following additional keyboard maping scheme,选择visual C++6, 然后编码试试。^_^阅读全文
posted @ 2011-07-08 10:37 风吹云动 阅读(521) 评论(0)  编辑
摘要: 在自动换行设置的时候,要在EDIT控件的属性中选中"multiline"的属性和Auto_HScroll、Vertical scroll。经过多次测试,总结出VC编辑框(EDIT)的自动换行与自动滚屏的方法。 方法一: (当EDIT映射到一CString时)m_String = m_String + sNewString + "\r\n" //自动换行(其中m_String是EDIT筐所关联的CString对象)UpdateData(false); 此法只能做到自动换行,不会自动滚屏到最后一行。 方法二: (当EDIT映射到一EDIT时)m_Edit.SetSel阅读全文
posted @ 2011-06-20 14:34 风吹云动 阅读(339) 评论(0)  编辑
摘要: I. 内存分配问题1. 变量未初始化。为debug中会自动给变量初始化found=FALSE,而在release版中则不会。所以尽可能的给变量、类或结构初始化。2. 数据溢出的问题如:char buffer[10]; int counter; lstrcpy(buffer, "abcdefghik"); 在debug版中buffer的NULL覆盖了counter的高位,但是除非counter>16M,什么问题也没有。但是在release版中,counter可能被放在寄存器中,这样NULL就覆盖了buffer下面的空间,可能就是函数的返回地址,这将导致ACCESS ER阅读全文
posted @ 2011-06-14 10:07 风吹云动 阅读(226) 评论(0)  编辑
仅列出标题  下一页