1 / 6
文档名称:

基础知识.doc

格式:doc   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基础知识.doc

上传人:fy3986758 2016/6/2 文件大小:0 KB

下载得到文件列表

基础知识.doc

相关文档

文档介绍

文档介绍:SolidWorks 对象以对象形式封装了接口属性事件,以 CLSID 作为唯一标识, 注册后会 CLSID 会被写入注册表, 对象以接口的方式提供服务, 对象有三个基本的接口类,IUnknown,IClassFactory,IDispatch. 任何借口都必须从 IUnknown 继承,IUnknown 包含了三个函数,QueryInterface,AddRef,Release, 三个函数很重要且排列顺序不能变 QueryInterfac e 查询组件实现的其他接口, 即查看组件的父类有哪些接口 AddRef 增加引用数 Release 减少引用数这两者比较容易出错, 不过大部分 C++ 类库已经将 AddRe f 隐含了, 只需要在适当的时候调用 Release 即可, 两种情况: 调用了 QueryInterface 之后, 创建组件的任务交给了一个单独的对象-- 类厂-- 每个对象都有一个与之相关的类厂或者调用了任何得到一个接口的指针函数之后客户仅仅知道代表组件的 128 位的字符串当用户请求创建组件对象实例时, 类厂创建后将指针交给客户-- 这对于远程以及进程间的调用特别有用-- 复杂的调度过程都由类厂做了 IClassFactor y 最重要的函数--CreateInstance-- 创建组件实例-- 一般不会直接调用它--API 帮我们封装好了, 只有特殊情况下才由我们直接调用--C++ 组件的优势-- 更多的控制机会 IDispatch 调度接口用于其他语言,尤其是不支持指针等功能的脚本语言,比如 JavaScrip ,用于分布式应用调度接口将每一个函数和属性编上号,客户调用这些函数属性时只需将这些编号传给 IDispatch 即可, 然后 IDispatch 再根据编号调用函数,主要函数为 Invoke ,客户都调用它 IDL ( Interface Define Language )接口定义语言与硬件平台无关的语言, 不同的编译平台通过 IDL 工具生成相应语言的接口如 VC的 MIDL 就把 IDL 的描述生成 C++ 接口该接口中有 3 个方法: interface IMyAddinObj : IDispatch { [id(1),helpstring("Start Notepad")]HRESULT StartNotepad; [id(2),helpstring("Toolbar Update")]HRESULT ToolbarUpdate([out,retval]long *status); [id(3),helpstring("Display PropertyManagerPage")]HRESULT DisplayPMP(); }; COM 接口是组件间通信的基础,是软件组合的关键在 SolidWorks 二次开发中也是先获得 SolidWorks API 对象的接口, 然后再使用接口提供的方法, 接口方法: 客户使用的函数事件:通过消息响应机制获取处理事件组件模块:组件模块为组建提供活动空间并完成组建对象的注册,通常以 dll 形式表现, COM 对象封装在其中, 一个模块可以有多个组件引用计数:该参数为 0 时,释放组件 OLE Object Linking and Embedding- 对象链接与