- 博客(8)
- 资源 (11)
- 收藏
- 关注
原创 Lambda表达式的一些用法
1.作为回调函数using FuncProgressCallback = std::function<bool(int32_t, int32_t)>;void DLG::SetCallback(int a, const FuncProgressCallback& cb);void Test(){ int value; DLG dlg; dlg.SetCallback(10, [&value](int pos, int total){ ...
2021-02-05 13:45:46 96
原创 Windows消息机制
Windows系统是消息驱动的,下面这篇文章讲讲我对Windows消息机制的理解。Window处理消息的过程:用户通过IO设备的输入操作(键盘鼠标等),看似由应用程序直接响应了用户的操作,实则不然。操作系统管理并监控着硬件设备,当键盘按下时由系统监控到,并产生一个消息(该消息记录了消息的类型,产生的窗口句柄等信息),放到系统消息队列中。系统中有一个专门的线程从消息队列中取出消息(系统是知道该消息是属于哪个窗口的),并放到该消息对应窗口的UI线程的消息队列中(UI线程有消息队列,系统为其创建。当一个线程调
2020-06-17 17:15:28 226
原创 设计模式-外观模式
外观模式:把对子系统一系列调用,封装成更高层的接口,降低用户与子系统之间的耦合性class C1{public: void Work() { cout << "c1 work"; }};class C2{public: void Work() { cout << "c2 work"; }};// 封装子系统C1,C2的work...
2019-07-03 20:30:24 89
原创 设计模式-观察者模式
使用场景:对象存在一对多的情况时,比如某个对象的改变,需要通知依赖他的所有对象被观察者(Subect):改变时通知所有观察者,包含观察者的合集观察者(Observer):抽象类具体的观察者(ConcreteObserver):继承Observerclass Subject{public: void Attach(Observer* p) { m_vcObs.push_...
2019-07-03 20:10:42 92
原创 设计模式-策略模式
行为模式Stragegy,定义所有支持的算法的公共接口ConcreteStrategy,封装了具体的算法或行为,继承于StrategyContext,用一个ConcreteStrategy来配置,维护一个对Strategy对象的引用使用场景:一系列算法(完成相同的工作),但是实现方法不一样。可以使用同一方法调用所有的算法。下面是未使用设计模式的代码class CBird{...
2019-07-03 19:25:40 98
原创 设计模式-单例模式
使用场景,一个类只需要一个实例的情况下,比如项目中操作配置项的类等。实现方法:将构造函数私有化,防止在该类之外创建对象,GetIns返回该类的静态成员变量,作为唯一的对象。class CDpnHelper{public: ~CDpnHelper(); static CDpnHelper& GetIns() { static CDpnHe...
2019-07-03 17:36:48 105
原创 c++ 结构化异常处理(SEH)
1.使用__try __finally的情形:下面的调用,如果FunX出现异常,导致m_hMem没有释放。void Fun1(){ // dosth... FunX(); WaitForSingleObject(m_hMem, INFINITE); CloseHandle(m_hMem);}使用try finally修改如下:...
2019-03-14 18:24:49 282
原创 SendMessage哪些事儿
关于SendMessage和PostMessage简单的理解,PostMessage把消息放到接收消息线程的消息队列(post-queue)中,调用该函数的线程不等待其执行。SendMessage分两种情况:(1)发送消息的线程与接收消息的线程是同一个线程:直接调用指定窗口的窗口过程函数,等待其返回。 (2)发送消息的线程与接收消息的线程是不同线程(包括同一进程的不同线程):消...
2019-03-14 16:09:15 491
胞映射程序baoyingshe.rar
2023-03-09
Python3脚本100例
2022-07-27
MSECDbgExts.zip
2021-08-24
RGB_ColorV2
2007-04-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人