教你看懂C++类库函数定义之二---STDMETHOD介绍
来源:互联网 发布:淘宝手机连接转换 编辑:程序博客网 时间:2024/06/14 10:45
一切从一个C++ 类库头文件开始,现在在做一个C++的项目,期间用到一个开源的界面库DUILib(类似MFC),这个东西还不错能很容易的写出漂亮的界面,比如QQ的界面,可以去下载下来研究研究,地址:http://code.google.com/p/duilib/
废话不多说,我比较困扰的是UIWebBrowser.h这个头文件,虽然是C++写的,但里面包含太多大学C++课本以外的东西,第一遍看下来跟看天书一样,里面有很多的不惑,接下来我们一个一个解开。
首先看一下这个函数定义:
virtual HERSULT STDMETHODCALLTYPE GetTypeInfoCount( __RPC__out UINT *pctinfo);
这一篇详细介绍 STDMETHODCALLTYPE
STDMETHOD_是一个宏,用于定义指定返回类型的接口方法,包含virtual关键字。可用于定义方法声明。#define STDMETHOD_(type,menthod) virtual type STDMETHODCALLTYPE menthod 例如: STDMETHOD_ (ULONG, release)()展开后就是 virtual ULONG STDMETHODCALLTYPE release() STDMETHODCALLTYPE 宏展开是 __stdcall。
#define STDMETHOD(method) virtual HRESULT STDMETHODCALLTYPE method
#define STDMETHODCALLTYPE __stdcall
这样当写一个函数STDMETHOD(op1(int i))
展开后成为: virtual HRESULT __stdcall op1(int i);
这样就这义了一个虚函数op1。当然了这个虚函数只能放在接口定义中了。
所以STDMETHOD宏是用于定义接口用的。放在头文件中用。
当要在CPP中实现这个方法时就用到另一个宏STDMETHOD
#define STDMETHODIMP HRESULT STDMETHODCALLTYPE
#define STDMETHODCALLTYPE __stdcall
这样CPP文件中,STDMETHODIMP(op1(int i))就展开为:
HRESULT __stdcall op1(int i);
其实用这些宏只不过为了省了一些打字的时间而已。
- 教你看懂C++类库函数定义之二---STDMETHOD介绍
- 教你看懂C++类库函数定义之二---STDMETHOD介绍
- 教你看懂C++类库函数定义之三---_stdcall
- 教你看懂C++类库函数定义之三---_stdcall
- 教你看懂C++类库函数定义之一---HRESULT 宏
- 教你看懂C++类库函数定义之一---HRESULT 宏
- STDMETHOD介绍
- STDMETHOD介绍
- c库函数之二 - toupper函数
- STDMETHOD
- C语言库函数介绍
- C语言库函数二
- 关于 STDMETHOD 和 STDMETHODIMP 的定义
- C语言库函数(二)
- C语言库函数(二)
- STM32之SPI库函数介绍
- 教你看懂Code128条形码
- 教你看懂网站日志
- Oracle 行列转换 总结
- Java 虚拟机 调优
- linux 启动过程分析
- vs2012下 error4996
- 【用Win7自带的DVD Maker制作视频】
- 教你看懂C++类库函数定义之二---STDMETHOD介绍
- Cocos2d-x 调用 Android 代码的后续
- android安全漏洞(二) 程序锁
- android 开发 实现全屏(实例)
- Java的static详解
- Centos5下迅速搭建AMP网站环境的方法
- Zend Framework 配置与应用
- ZFS文件系统基本使用
- iTunes中对Documents文件夹进行操作的监听方法