- 博客(17)
- 资源 (33)
- 收藏
- 关注
原创 Windows程序开发必须知道的几个注册表项
1、Windows服务程序列表位置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services2、卸载程序列表位置32位系统当前用户软件HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall所有用户软件HKEY_LOCAL_
2015-03-31 22:29:43 7024
原创 Duilib中为RichEdit\Edit控件添加自定义右键菜单
前言Duilib中的RichEdit控件在使用中发现,基本上对复制、粘贴、剪切等快捷方式都是支持的,不过唯一缺点是没有右键菜单,感觉不够好,于是就想着加上右键菜单。右键菜单基本思路是,在RichEdit的消息处理函数中对鼠标的右键消息处理,发送一个自定义的Notify消息出来,主窗口中受到这个消息后弹出自己的右键菜单。实现方法第一步:把鼠标右键消息转
2015-03-28 22:01:01 7986 6
原创 WIN32窗口子类化----自定义Edit控件的右键菜单
前言 Win32应用程序中,子控件的消息都是分发到其父窗口的消息处理函数中去了,这对于我们需要自定义子控件的某些特性时时十分不方便的,还好,Windows为我们提供了控件子类化的相关接口API。核心的思想是:通过获取子控件的消息处理函数地址,设置子控件的消息处理函数到自己定义的函数里,也就是Get/SetWindowLong API的使用。测试代码这里是一个
2015-03-28 21:35:58 5033 1
原创 boost::any的使用和扩展
前言boost::any类为我们提供了一个十分强大的功能:只要定义一个any对象,就可以保存任意类型的数据到这个对象中,而且还可以动态改变类型。这比我么在COM中使用到的VARIANT结构要强大多了,VARIANT只不过是用到了一个联合体,把可能出现的类型全部包括进去了,更像是一种穷举,而且还有一个标识来说明当前结构中保存的数据的类型。如何使用any?去boost官
2015-03-28 21:12:42 7744 1
原创 IWebbrowser2中C++与JavaScript的交互调用
JS调用C++IWebbrowser2中C++与JS交互主要处理IDispatch中的两个接口1、GetIDsOfNames这里主要是把需要调用JS函数给编一个号,为什么函数要编号呢?建议看看COM的原理,大概是C++实现的COM调用机制主要是用的虚函数表,但是其他的脚本语言中并没有这个玩意,其他脚本需要调用函数时,只能通过函数的ID来找到对应的函数。那么我们就
2015-03-22 20:08:21 10655 4
原创 libCEF中C++与JavaScript的交互调用
前言前一篇文章介绍过CEF在WIN32程序中嵌入chrome内核浏览器的例子:http://blog.csdn.net/mfcing/article/details/43973377这里介绍的是嵌入浏览器后,网页的JS脚本函数与C++代码的交互,这个很多地方都用得到。比如:音乐播放器里网页上的播放,客户端资源中心里的资源下载……JS调用C++函数首先需要重写CefRende
2015-03-22 18:22:21 31911 1
原创 Windows上CAtlFileMapping共享内存的使用以及内部机制
前言:使用CEF加载网页,做JS与C++交互时,需要向主窗口发送一些消息来通知界面做相应的处理。但是,由于CEF使用chrome内核是多进程架构的,渲染引擎与主程序都不在同一个进程里面。因此,理所当然的就想到了使用共享内存了。为了更容易地使用,我们选择的是ATL里面封装的共享内存操作类:CAtlFileMapping。CAtlFileMapping使用:定义结构体,包含你所需要共享的数
2015-03-19 11:06:34 2546 2
转载 windows下编译openssl
原文转载自:http://lwglucky.blog.51cto.com/1228348/325483感谢作者。需要说明的是请一定安装openssl-0.9.8a 。 openssl-1.0.0我没有编译成功.如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1、安装ActivePerl//初始化的时候,需要用到perl解释器2、使用VS20
2015-03-17 18:28:29 1789
原创 windows核心编程之使用线程APC回调安全退出多个等待线程
前言程序开发中经常遇到需要这些情况:辅助线程正在等待内核对象的触发,主线程需要强制终止辅助线程。我们常常做的就是使用:TerminateThread来强制终止线程。这样做当然是不太好的,强制终止线程后系统不会销毁此线程的堆栈,长久下去内存泄露问题就会很严重了。线程最安全的退出方式当然还是让它自己返回了。本文主要介绍windows核心编程中介绍的一种安全退出线程方式:使用可等待API等待内核对象
2015-03-16 12:49:14 2657
转载 LocalAlloc,VirtualAlloc,malloc,new的异同
原文转载自:http://www.cnblogs.com/Clingingboy/archive/2013/03/07/2947934.html,感谢原作者。首先明白几个概念:虚拟内存是从硬盘置换出来的,堆本身就是内存,程序运行时,可用内存=物理内存+虚拟内存。虚拟内存一般用文件来保存数据,虚拟内存的出现主要是因为以前内存不够(16M的内存刚出来的时候可是天价啊),磁盘相对便宜一些,所以聪明的
2015-03-15 22:03:08 684
原创 STL中map容器使用自定义key类型报错详解
引言STL的map容器中,key的类型是不是随意的呢?实践编写测试代码定义一个结构体来试试:struct a{ char* pName; int m_a; };map mp; a a1; a1.m_a = 100; a1.pName = "a1"; a a2; a2.m_a = 200; a2.pName = "a2"; mp.insert(std:
2015-03-09 17:37:48 14302 1
转载 Windows消息机制详解
文章转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/18/90412.html,感谢原作者。消息是指什么? 消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺
2015-03-09 15:35:55 5084
转载 C语言“指针函数”与“函数指针”的区别
原文转载自:http://www.cnblogs.com/gmh915/archive/2010/06/11/1756067.html,感谢作者。1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个
2015-03-09 14:32:14 702
转载 设计模式之命令(Command)模式详解
原文转载自:http://www.cnblogs.com/zhenyulu/articles/69858.html感谢作者。一、 命令(Command)模式命令(Command)模式属于对象的行为模式【GOF95】。命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参
2015-03-08 22:31:56 614
转载 C++中四种类型转换方式
原文转载自:http://www.cnblogs.com/BeyondAnyTime/archive/2012/08/23/2652696.html,感谢原作者。类型转换有c风格的,当然还有c++风格的。c风格的转换的格式很简单(TYPE)EXPRESSION,但是c风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比如你可以把一个指向
2015-03-03 21:11:15 799
转载 Windows异步过程调用(APC)
原文转载自:http://blog.sina.com.cn/s/blog_6c617ee301017nhr.html,感谢原作者。apc可以看成就是内核里的定时器,为了给自己一个在本函数返回后还能执行的一次机会,有很多操作是需要在函数返回后才能执行.类似于析构函数但不完全是。apc的最大特点就是在本函数返回后才执行,而且是在本线程中。而内核提供的原生的定时器,执行的
2015-03-01 10:09:59 4413 1
原创 Windows核心编程笔记(7)----内核模式下的线程同步
1、内核对象同步与用户模式下同步对比使用内核对象的唯一缺点就是性能,调用内核对象函数时,调用线程必须从用户模式切换到内核模式,这种切换是相当耗时的。内核对象(进程、线程、作业)要么处于触发态,要么处于未触发状态。进程内核对象在创建时总是处于未触发状态,当进程终止时,操作系统会自动使进程内核对象变成触发状态。当进程内核对象处于触发状态后,将永远保持这种状态,再也不能变回未触发状态
2015-03-01 10:07:10 1782
libjpeg-turbo编码、解码实例代码
2016-09-23
Windows上编译的libx264(源码+生成DLL、lib、def)
2016-07-05
windows上使用Libcef实例源码
2015-12-11
WebsocketPP C++构建Web服务器源代码
2015-11-30
VC++实现支持换肤半透明的MP3播放器
2015-01-25
C++实现HTTP处理类
2015-01-15
VC++图像分割、灰度处理源码
2013-10-12
MFC硬件检测
2011-09-18
MFC多用途文件编辑器
2011-04-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人