自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Welcom to zougangx's blog

坚持...积累... 编程是一门技术,更加是一门艺术

  • 博客(14)
  • 资源 (3)
  • 收藏
  • 关注

转载 ATL接口映射宏详解[7]

七、COM_INTERFACE_ENTRY_AUTOAGGREGATE(iid, punk, clsid) 参ATL例程COMMAP 先看看这个宏的定义: #define COM_INTERFACE_ENTRY_AUTOAGGREGATE(iid, punk, clsid)/ {&iid,/ (DWORD)&_CComCacheData,/ (DWORD)offsetof(_ComMapClass

2008-05-24 22:41:00 700

转载 ATL接口映射宏详解[6]

六、COM_INTERFACE_ENTRY_AGGREGATE_BLIND 参ATL例程COMMAP 上一节我们讲了COM_INTERFACE_ENTRY_AGGREGATE,这节要介绍的宏与它很类似。 #define COM_INTERFACE_ENTRY_AGGREGATE_BLIND(punk)/ {NULL,/ (DWORD)offsetof(_ComMapClass, punk),/ _

2008-05-24 22:40:00 535

转载 ATL接口映射宏详解[5]

五.COM_INTERFACE_ENTRY_AGGREGATE(iid, punk) 参ATL例程COMMAP 这一节中将介绍ATL中用于聚集对象的宏。聚集对象的概念请参阅其它参考书。 现在先看一看这个宏的典型用法: class CAgg : public IDispatchImpl, public ISupportErrorInfo, public CComObjectRoot, public

2008-05-24 22:38:00 612

转载 ATL接口映射宏详解[4]

四.COM_INTERFACE_ENTRY_CACHED_TEAR_OFF(iid, x, punk) 参ATL例程COMMAP 这个宏与上一节所讲的COM_INTERFACE_ENTRY_TEAR_OFF宏最主要的不同就在于,当查 询分割对象中其他接口时,不会再新建新的对象。下面还是先看看它的典型用法: class CTearOff2: public IDispatchImpl, public

2008-05-24 22:37:00 683

转载 ATL接口映射宏详解[3]

三、COM_INTERFACE_ENTRY_TEAR_OFF(iid, x) 参考ATL例程Beeper、COMMAP 使用这个宏的目的就是为了把一些很少用到的接口放在一个单独的组件中实现,仅 当查询到这个接口时,才创建这个组件,并且当它的引用计数减为0时就会被释放掉。我 们知道ATL中组件是通过多重继承实现的,每继承一个接口,在为它分配的内存块中就会 多一个虚函数表指针,用这个宏就可以为每个组件

2008-05-24 22:35:00 618

转载 ATL接口映射宏详解[2]

5:CComCreator::CreateInstance(void* pv, REFIID riid, LPVOID* ppv) { T1* p = NULL; ATLTRY(p = new T1(pv))//创建类厂对象 if (p != NULL) { p->SetVoid(pv); p->InternalFinalConstructAddRef(); hRes = p->FinalCons

2008-05-24 22:34:00 655

原创 C++之父元旦专访(8+13个问题,关于C++的学习&使用和未来)(转帖)

Bjarne Stroustrup is the designer and originalimplementer of C++ and the author of "The C++ Programming Language" and“The Design and Evolution of C++”. His research interests includedistributed system

2008-05-24 20:15:00 1491

原创 析构函数是虚函数

  用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public:    ClxBase() {};    virtual ~ClxBase() {};     virtual void DoSomething() { cout }; class C

2008-05-19 21:44:00 634

原创 多态是如何实现绑定的

  多态是如何实现绑定的多态的绑定可以分为运行是多态和编译时多态● 编译时的多态性编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。● 运行时的多态性运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。C#中,运行时的多态性通过虚成员实现。编译时的多态性为我们提供了运行速度快的特点,而运行时

2008-05-19 21:42:00 628

原创 VC视频教程笔记(第六课)

1.当对某菜单添加消息响应函数时,4个类的消息响应优先次序分别是:1.View;2.CDOC;3.CMainFrame.4.CWinAPP.为什么?请参阅《深入浅出》 2.消息分类:a;标准消息(以WM_开头的消息,但不包括ON_COMMAND);b;命令消息 ON_COMMAND(IDM_PHONE1, OnPhone1),菜单和工具栏的消息。c.通告消息:按钮,列表框发出的消息。 CCmd

2008-05-19 21:34:00 503

原创 VC视频教程笔记(第五课)

1.CWnd::CreateSolidCaret创建插入符,ShowCaret()显示插入符。GetTextMetrics(),获得当前字体的一些信息。CWnd::CreateCaret()创建图象插入符 bitmap.LoadBitmap(IDB_BITMAP1);//此处的bitmap为成员变量! CreateCaret(&bitmap); ShowCaret(); TEXTMETRIC

2008-05-19 21:31:00 523

原创 VC视频(第四讲)

1.在单文档中view挡在MainFrame的前面。此时如果编写针对MainFrame的mouseClick事件,将不会有反应。 2.消息响应会在3处修改代码,1处是在头文件中, //{{AFX_MSG(CDrawView) afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnLButtonUp(UINT

2008-05-19 21:29:00 501

原创 C++之父访谈

1998年的元旦,Bjarne Stroustrup(C++之父)接受了IEEE《计算机》杂志记者的专访。编辑很自然的认为他会对于过去七年来使用他创建的语言进行面对对像设计做一个历史性的回顾。而在这个专访中,记者获得了更有价值的新闻,但是最后编辑决定为了整个IT产业,这个稿子不能发表,但是就像其它被砍掉的新闻,往往还是弄得路人皆知的。这一篇适当时专访的完全拷贝,没有被编辑、删改或者做过什么润色处理

2008-05-19 20:31:00 471

转载 ATL接口映射宏详解[1]

序言:   这几天看了看ATL的接口映射宏,不知不觉看得比较深入了,突然就萌发了把它写出来的想法。ATL中定义了很多接口映射宏,有几个还是比较重要的,虽然好象没有必要把它所有的细节都弄得很清楚,但深入学习的过程中也可以顺带学一学其他的ATL类,对它的机制也可以更清楚一些,应该还是会有些好处的吧。我按照我学习的过程把它写出来,也 不知道大家能不能看懂。想模仿一下侯老师的手笔力争把其内部细节解释清楚,

2008-05-12 17:36:00 633

MySQL-python-1.2.5.win-amd64-py2.7

python2.7 独立安装mysql工具包,不需要本地编译环境。

2015-12-28

端口扫描器L-ScanPort2.0源码(VC)

一个端口扫描软件,VC编写的,方便快速,附上源码,大家共同交流!!

2014-02-17

Firefox插件开发Demo

Firefox插件Demo #include "npapi.h" #include "npruntime.h" typedef int int16; class CPlugin { private: NPP m_pNPInstance; #ifdef XP_WIN HWND m_hWnd; #endif NPWindow * m_Window; NPStream * m_pNPStream; NPBool m_bInitialized; NPObject *m_pScriptableObject; public: char m_String[128]; public: CPlugin(NPP pNPInstance); ~CPlugin(); NPBool init(NPWindow* pNPWindow); void shut(); NPBool isInitialized(); int16 handleEvent(void* event); void showVersion(); void clear(); void getVersion(char* *aVersion); NPObject *GetScriptableObject(); }; #endif // __PLUGIN_H__

2010-05-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除