![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++ Practicer
文章平均质量分 88
Lodger007
--
展开
-
利用系统钩子锁住鼠标和键盘
要截获系统中所有应用程序的消息,必须将钩子函数写在动态连接库中,否则钩子只能截获该应用程序的消息。其实,这个道理很简单,我们看下面这个安装钩子的API:HHOOK SetWindowsHookEx( int idHook, // type of hook to install HOOKPROC lpfn, // address of hook procedure H原创 2005-09-01 14:54:00 · 2836 阅读 · 0 评论 -
关于inline
是不是在类定义中被定义的成员函数会被自动当作是内联函数?或者在定义成员函数时显式地添加inline关键字,该函数就会被定义成内联的呢?实际上不是!对于编译器来说,内联函数是一种请求,而不是一种保证(C++ Primer(3Ed) P26)。下面以在VC++7.0下产生的代码为例。// inline内联函数演示// InlineDemo.h#pragma once#include usi原创 2006-06-23 10:53:00 · 1684 阅读 · 0 评论 -
小析override & overload
一、overload,译为重载,是C++提供的一种处理函数重名的机制。void f(float) { ... }void f(int) { ... }在C中上面代码不能通过编译,而在C++中却可以。这是因为C++编译器根据参数为每个重载函数产生不同的内部标识符,也就是说参数表是判断函数相同与否的标志。但是,我们会很自然地想到为什么不用返回值作为区分标志呢?请看下面的例子:v原创 2006-07-27 21:04:00 · 1811 阅读 · 0 评论 -
RakNet V2.454中对完成端口的修复
RakNet是RakkarSoft的一个网络引擎(http://www.rakkarsoft.com/) 。该引擎有商业版和非商业版之分,非商业版意味着免费,同时也意味着代码质量不会很高,因为它不可能傻到把免费版做来比商业版要好。虽然2.454版本的文档明确了可以使用完成端口(注意:RakNet后续版本都不再支持完成端口),但是在实际代码中,完成端口部分的代码却不能工作。由于项目需要,我对原创 2006-08-11 16:26:00 · 4517 阅读 · 1 评论 -
C++中强迫隐式转换this对象到基类所引发的思考
《Effective C++》堪称C++之经典书籍,但是不能因为她是经典而对其唯命是从,相反应该带着自己的脑袋来思考书中的每一条款,只有这样才能有所得。 故事发生在条款27(尽量少做转型动作),其中一段代码所产生的结果令我费解。class Window{public: virtual void onResize() { . . . } . . .};class S原创 2007-01-15 22:03:00 · 2131 阅读 · 1 评论 -
C++实现插件构架 之 入门篇
Plug-in is Everywhere ——Plug-in是一种理念在一个典型的应用开发过程中,我们必须在设计开发阶段满足所有既定的需求。然而软件开发并非一劳永逸之事,客户对功能的需求永无休止,他们会提出各种各样稀奇古怪的需求,这就迫使软件设计者在体系架构上下功夫。目前,P原创 2007-05-11 22:25:00 · 3846 阅读 · 0 评论