CR的代码文本

all for learning about the world
  订阅 订阅  :: 管理

2010年7月27日

摘要: 类,可以继承其基类的代码实现。COM支持的继承是接口的继承,C++中基类的类型、接口都属此列。粗浅的说,“实现继承”,以做饭为例,“实现继承”的派生类不用管饭是怎么做的,基类会完成;“接口继承”的基类只是定义了一个做饭接口,饭怎么做是要由派生类去实现。(暴露了暴露了-__-b)COM组件的定义也就是一系列接口,志在立法,而非执... 阅读全文

posted @ 2010-07-27 22:51 mumuliang 阅读(324) 评论(0) 推荐(0) 编辑

摘要: 类厂意指,制造出组件的组件。COM函数CoCreateInstance是用来创建组件的最基本和最常用的方法。但它其实也是通过类厂来创建的。只不过过程统一化了。换句话说,CoCreateInstance只是类厂创建的一个具体应用。要创建更灵活的组件,一定会使用类厂。CoCreateInstance的限制 HRESULT __stdcall CoCreateInstance( const CLSID... 阅读全文

posted @ 2010-07-27 17:36 mumuliang 阅读(804) 评论(0) 推荐(0) 编辑

摘要: HRESULT COM组件常使用HERESULT来向用户报告接口函数执行的情况。它是一个结构固定的32位值,分成三部分。最高位表示函数调用是否成功。低16位包含函数返回值。常用的HRESULT值S_OK 函数成功。某些情况下表示函数返回了一个布尔true。S_OK定义为0。NOERROR 同上。S_FALSE 函数成功并返回一个布尔false。S_FALSE被定义为1.E_UNEXPECTE... 阅读全文

posted @ 2010-07-27 16:42 mumuliang 阅读(526) 评论(0) 推荐(0) 编辑

摘要: 利用动态链接库DLL来实现组件。DLL只是组件的一种实现方式,组件是DLL中实现的一组接口集。组件描述的是本质,DLL是形式。从DLL中输出函数1、extern “C”需要输出的函数用extern "C"进行标记,防止C++编译器在函数名称上加上类型信息。(不同编译器会使用不同的名称修改方法)// Creation functioniextern "C"IUnknown *... 阅读全文

posted @ 2010-07-27 13:41 mumuliang 阅读(342) 评论(0) 推荐(0) 编辑

摘要: IUnknown的另外两个成员函数AddRef和Release是引用计数的代码实现。COM组件都会维护一个表示引用计数的数值。客户取得一个接口时,计数值+1——AddRef,使用完后-1——Release。为0时,组件可将自己从内存中删除。关于此有三条简单的规则:1、在返回之前调用AddRef。对与返回接口指针的函数,在返回之前,用相应的指针调用Ad... 阅读全文

posted @ 2010-07-27 13:17 mumuliang 阅读(243) 评论(0) 推荐(0) 编辑

摘要: 接口查询头文件:IUnknown接口定义包含在Win32 SDK的unknwn.h中。函数:QueryInterface, AddRef, Release用途:查询组件的其他接口。所有COM接口都需集成IUnknown,都支持QueryInterface。创建组件时,可以考虑建立一个组件并返回IUnknown指针,而不必使用new操作符。IUnknown * CreateInstance();IU... 阅读全文

posted @ 2010-07-27 12:47 mumuliang 阅读(459) 评论(0) 推荐(0) 编辑

摘要: COM是接口,一组规则。ActiveX是实现了一部分、特定、不完全COM接口的控件。控件,听起来应该是有界面、可见的(可能在Control概念刚出现时的确是这样)。实际上ActiveX控件也可以是不可见的。 ps,百度晓得一个关于组件、控件和插件区别的问题,最佳答案是这么说的:说不清楚。概念上的东西,娱乐多一点。 阅读全文

posted @ 2010-07-27 11:02 mumuliang 阅读(953) 评论(0) 推荐(0) 编辑

摘要: 说起来又会很羞耻了为了合理安排项目文件目录,一直都是新建项目(同时会新建解决方案),然后关闭vs,手动调整项目文件和解决方案文件。再次重新打开解决方案,此时会提示项目载入错误,移除项目,然后重新加载。实际上,vs在新建项目的其他项目类型最后一栏有“空白解决方案”模板。错的深刻!对的肤浅,啊~ 阅读全文

posted @ 2010-07-27 10:21 mumuliang 阅读(493) 评论(0) 推荐(0) 编辑

摘要: 还以为是场景太大造成的载入时间太长。。其实是场景文件没载入原因缺少zlib1.dll。找一个放到。。。即可 阅读全文

posted @ 2010-07-27 00:34 mumuliang 阅读(275) 评论(0) 推荐(0) 编辑