李sir_Blog

博客园 首页 联系 订阅 管理
上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 71 下一页

2011年9月22日

摘要: 1、弹出式广告框也是IE浏览窗口,一般来说,它是一个无菜单、无工具栏窗口。所以可以在桌面上打开一个窗口时,首先判断该窗口类型是否是“IEFrame”,接着判断IEFrame的子窗口类型“WorkerW”的属性是否是不可见(这是一般弹出式广告窗口的特征),这样就可以向该窗口发出关闭的消息,以上步骤一般能自动关闭大部分弹出广告框。 2、通过WINDOWS编程中的钩子(HOOK)函数解决截获在桌面上打开窗口的消息。钩子函数的基本原理就是对WINDOWS系统的某些动作注册,当发生这些事件时首先调用预先设置的回调函数,回调函数处理后,再由原来的函数处理。这里回调函数的作用正是实现1中叙述的功能。因为.. 阅读全文
posted @ 2011-09-22 10:31 李sir 阅读(1332) 评论(1) 推荐(0)

2011年9月9日

摘要: 今天用asio写一个简单的server时,当连接成功时做如下工作Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1asio::async_read(socket_,asio::buffer(&m_packet,sizeof(m_packet)),2boost::bind(&tcp_connection::HandleReadCardKey,shared_from_this(),3asio::placeholders::erro 阅读全文
posted @ 2011-09-09 14:19 李sir 阅读(10004) 评论(0) 推荐(0)

摘要: shared_from_this()是enable_shared_from_this<T>的成员 函数,返回shared_ptr<T>。首先需要注意的是,这个函数仅在shared_ptr<T>的构造函数被调用之后才能使 用。原因是enable_shared_from_this::weak_ptr并不在构造函数中设置,而是在shared_ptr<T>的 构造函数中设置。 如下代码是错误的:class D:public boost::enable_shared_from_this<D>{public: D() { boost::share 阅读全文
posted @ 2011-09-09 13:54 李sir 阅读(14401) 评论(1) 推荐(3)

摘要: 首先#include <gtest/gtest.h>,当然工程的头文件路径要设置正确1.简单测试TESTCpp代码#include <gtest/gtest.h> int Factorial( int n ) { if(n==2) return 100; //故意出个错,嘻嘻 return n<=0? 1 : n*Factorial(n - 1); } //用TEST做简单测试 TEST(TestFactorial, ZeroInput) //第一个参数是测试用例名,第二个参数是测试名:随后的测试结果将以"测试用例名.测试名"的形式给出 { E 阅读全文
posted @ 2011-09-09 10:07 李sir 阅读(2015) 评论(0) 推荐(0)

2011年9月7日

摘要: bind并不是一个单独的类或函数,而是非常庞大的家族,依据绑定的参数个数和要绑定的调用对象类型,总共有十个不同的形式,但它们的名字都叫bind. bind接受的第一个参数必须是一个可调用对象f,包括函数,函数指针,函数对象和成员函数,之后bind接受最多9个参数,参数的数量必须与f的参数数量相等 _1,_2这些一直可以到9,是占位符,必须在绑定表达式中提供函数要求的所有参数,无论是真实参数还是占位符均可以。占位符不可以超过函数参数数量。 绑定普通函数: C++代码 #include<boost/bind.hpp> #include<iostream> usingname 阅读全文
posted @ 2011-09-07 14:32 李sir 阅读(9542) 评论(2) 推荐(1)

摘要: 以boost::function和boost:bind取代虚函数boost::function和boost::bind已经纳入了std::tr1,这或许是C++0x最值得期待的功能,它将彻底改变C++库的设计方式,以及应用程序的编写方式。Scott Meyers的Effective C++ 3rd ed.第35条款提到了以boost::function和boost:bind取代虚函数的做法,这里谈谈我自己使用的感受。基本用途boost::function就像C#里的delegate,可以指向任何函数,包括成员函数。当用bind把某个成员函数绑到某个对象上时,我们得到了一个closure(闭包) 阅读全文
posted @ 2011-09-07 13:25 李sir 阅读(1091) 评论(1) 推荐(0)

2011年9月1日

摘要: 当我们使用函数时习惯于C函数的格式,即如下形式resulttype funname( arglist );返回值类型 函数名( 参数列表 );在Boost.Function中,我们可以方便的定义定义函数对象。不过在定义用来表示类成员函数的函数对象时第一个参数是类指针。而且在调用时,要传入一个类实例的指针。这样用起来并不是很方便,因为调用者要知道类实例。这实际上没有实现解耦。而解耦是我们使用回调或委托设计的一个目标。为了解决这个问题,我们要使用Boost.Bind库Boost.Bind是一个函数对象工厂。他用来产生我们需要的函数对象。好了,有了它,你可以在你设计中大量使用Boost.Functi 阅读全文
posted @ 2011-09-01 15:54 李sir 阅读(824) 评论(0) 推荐(0)

2011年8月29日

摘要: #include<ctime>#include<iostream>#include<boost/bind.hpp>#include<boost/shared_ptr.hpp>#include<boost/enable_shared_from_this.hpp>#include<boost/asio.hpp>usingboost::asio::ip::tcp;std::stringmake_daytime_string(){usingnamespacestd;time_tnow=time(0);returnctime(&am 阅读全文
posted @ 2011-08-29 10:56 李sir 阅读(1640) 评论(0) 推荐(0)

摘要: #include<ctime>#include<iostream>#include<string>#include<boost/asio.hpp>usingboost::asio::ip::tcp;std::stringmake_daytime_string(){usingnamespacestd;time_tnow=time(0);returnctime(&now);}int_tmain(intargc,_TCHAR*argv[]){try{boost::asio::io_serviceio_service;//新建一个asio::ip 阅读全文
posted @ 2011-08-29 10:13 李sir 阅读(1267) 评论(0) 推荐(0)

摘要: #include<iostream>#include<boost/array.hpp>#include<boost/asio.hpp>//本程序的目的是访问一个时间同步服务器,我们需要用户指定一个服务器(如time-a.nist.gov),用IP亦可.usingboost::asio::ip::tcp;intmain(intargc,char*argv[])...{try...{if(argc!=2)...{std::cerr<<"Usage:client<host>"<<std::endl;retur 阅读全文
posted @ 2011-08-29 09:28 李sir 阅读(2119) 评论(0) 推荐(0)

上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 71 下一页