存档

‘C/C++’ 分类的存档

ATL与MFC消息分发机制的对比—由金山开源代码引出的思考(一)

2012年7月1日 没有评论 2074次阅读    

前几天刚看金山开源代码时写了一篇博客分析了一下其消息机制的实现方式。后来发现写的很多都是ATL里面的,最**的是犯了一个严重的错误,把ATL的窗口消息机制里面一个重要技术:实现HWND和对应窗口类this指针之间的映射的Thunk技术给忽略掉了。后来陈坤GG即时的提醒了我,先谢谢他了!
好了,步入正题,今天主要对比一下ATL和MFC是如何将窗口句柄HWND和对应的类的this指针映射的。
阅读全文...

Share
分类: VC++ 标签: ,

C++虚函数多继承的虚函数表指针的测试

2012年7月1日 没有评论 1025次阅读    

C++虚函数多继承的虚函数表指针的测试

看了很多关于虚函数的实现机制,现在来动手验证一下吧··· 阅读全文...

Share
分类: C/C++ 标签:

关于C++虚函数默认参数的问题。Effective C++ 条款38: 决不要重新定义继承而来的缺省参数值

2012年7月1日 没有评论 1741次阅读    

昨晚在chgaowei的博客上关于讨论C++虚函数的默认参数问题,刚翻书找了一下,在Effective C++ 中的38条有说明。
直接上原文吧,最后加几句细点的理解
条款38: 决不要重新定义继承而来的缺省参数值
让我们从一开始就把问题简化。缺省参数只能作为函数的一部分而存在;另外,只有两种函数可以继承:虚函数和非虚函数。因此,重定义缺省参数值的唯一方法是重定义一个继承而来的函数。然而,重定义继承而来的非虚函数是一种错误(参见条款37),所以,我们完全可以把讨论的范围缩小为 "继承一个有缺省参数值的虚函数" 的情况。
阅读全文...

Share
分类: C/C++ 标签: ,

金山卫士开源代码—-消息机制浅析

2012年7月1日 没有评论 1464次阅读    

金山卫士开源代码----消息机制浅析 (上)

代码地址:http://download.csdn.net/source/3301518

今天简化了金山的开源代码,用来学习一下,先谢谢金山的开源精神了,呵呵···直接弄最简单的,窗口见下图,关键代码如下,全部的代码放附件里吧。分析中关于累的继承机制等没有详细的说明了,在函数申明中我会用SON: public BASE ::Func() 的方式指出的.今天主要学习一下其消息机制和路由。因为没有学过ATL,所以理解错了希望大家指教一下哦···
先谢谢了,呵呵··· 阅读全文...

Share
分类: C/C++ 标签:

typedef 在类里面定义一个类型时的问题。

2012年7月1日 没有评论 1134次阅读    

class Test
{
public:
typedef int ( func )( void );//定义一个函数指针类型,
int print(void) { return 0 ;} ;//下面的错误中,
//如果把print函数定义为friend 或者static的,就可以了。但是无法满足我的要求
func p ;//声明一个函数指针
void init() {
p = print ;//在这里给函数指针变量p赋值,赋的是本类的print函数地址。
//但是这句总是出错
}
};
阅读全文...

Share
分类: C/C++ 标签: