摘要:
C#编码转换主要使用了Encoding.Convert方法,它需要原编码字符串的字节数组作为参数,返回目标编码的字节数组。Encoding对象可以从字符串获取字节数组,又能够从字节数组还原字符串,因此可以将其组合用来转码。 阅读全文
摘要:
构造函数、析构函数和赋值函数是类的“Big-Three”。 阅读全文
摘要:
C#抓图服务首先抽象出抓图接口,然后对接口做基于公共操作的抽象类封装,之后针对不同的抓图方式做差异化处理,最后根据接口实现抓图服务。 阅读全文
摘要:
对于C++内置类型的自增而言,前自增、后自增的效率相差不大;对于自定义类型(类、结构体)的自增操作而言,前自增的效率几乎比后自增大一倍。 阅读全文
摘要:
本文首先通过QueryPerformanceFrequency获取高精度计时器的时钟频率,然后通过两次调用QueryPerformanceCounter获取高精度计时器的差值,最后以差值除以时钟频率获取精确计时。 阅读全文
摘要:
本文使用C++将位图句柄HBITMAP保存为位图文件,配合C++抓图代码可以实现抓图保存文件(.bmp)。 阅读全文
摘要:
基于前两篇抓图文章,本文将抓图提取为一个服务,实现不同场景下抓图需求的封装。 C++使用BitBlt进行窗口抓图 C++使用PrintWindow进行窗口抓图 首先是抓图服务: ICaptureHelper.h #pragma once #include <windows.h> #include < 阅读全文
摘要:
本文使用C++双缓存进行指定窗口截图。CreateDIBSection创建应用程序可以直接写入的、与设备无关的位图(DIB),它提供内存中位图的指针,外部程序可以直接使用。 需要注意的是,PrintWindow方法能够抓取使用D3D渲染的窗口(例如Excel、Win10自带视频播放器),如果抓取普通 阅读全文
摘要:
C++使用BitBlt、CreateDIBSection和双缓冲对指定窗口截图。 阅读全文
摘要:
单例模式是老生常谈的一种设计模式,同时它是最简单也是最容易被忽视的一种设计模式。单例类应该是密封类,不能被继承,同时建议在任何情况下都要保证线程安全。 阅读全文
摘要:
传统观察者模式的C#代码实现,以及使用C# IObservable模式的代码实现。 阅读全文