首页

代码片段:CFormView手动创建以及OnInitialUpdate

CFormView相比CDialog来说,多了个比较吸引人的优点:它继承自CScrollView。因此,天然的,CFormView就拥有了视图自动滚动的特性。 动态创建 继承自CFormView的子类,VS的代码生成器会自动使用如下的两个宏: DECLARE_DYNCREATE(子类的头文件) IMPLEMENT_DYNCREATE(子类的实现文件) 这两个宏经过展开后的即可使类具备动态创建的特性...

代码片段:使用对象来自动初始化(销毁)COM设施

考察以下代码片段: class CComIniter { public: CComIniter() : m_hr(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)) { } ~CComIniter() { if (SUCCEEDED(m_hr)) { ...

代码片段:清除资源管理器图标缓存  

Windows为了加快资源管理器的加载速度,对文件的图标进行了缓存。有时候,文件的图标更新了,但是在资源管理器下还是显示的原来的图标。 那么,如何清理资源管理器中的图标缓存,并重新构建图标缓存呢。 代码 @echo off taskkill /f /im explorer.exe attrib -h -s -r "%userprofile%\AppData\Local\...

代码片段:BAT脚本以管理员身份运行  

当在BAT批处理脚本中执行需要管理员权限的任务时,需要首先进行管理员权限提升,今天记录一下需要使用到的代码片段。 权限提升代码 @echo off setlocal set uac=~uac_permission_tmp_%random% md "%SystemRoot%\system32\%uac%" 2>nul if %errorlevel%==0 (...

代码片段:获取系统所有IP  

在Windows系统中,可以支持多个网卡,比如有线的以太网卡,无线网卡,虚拟网卡等。如下图所示: 而一个网卡,其IP地址可以是DHCP自动分配,也可以手动设定。在手动设定模式下,还可以添加多个IP地址。如下图所示: 那么,如何通过代码的方式来获取所有的这些IP地址呢?废话少说,直接上代码吧! bool ShowAllIpAddr() { PIP_ADAPTER_ADDRESSES p...

代码片段:Crypto++使用方法汇总

今天来说简单汇总一下著名C++编解码库Crypto++的使用方法,以下仅列出代码片段,详细的API解释请大家参考在Crypto++官网文档。 基本上这个库的调用方式比较少见,但是学会了其中一种,其他的算法函数也是可以融会贯通的。 1) AES加密: string m_buf; CryptoPP::AES::Encryption aes_encryption(m_key, CryptoPP::...