社区
ATL
帖子详情
用ATL开发的一个DLL组件,在测试中的问题?
handongchen
2003-09-14 10:08:40
编译已经通过,注册也成功!但是启动OLEVIEW后,书上说点击ATL Developer`s Guide Examples节点,在里面应该能看到自己创建的组件!可是根本就没有这个节点,是怎么回事?书上还说,应该确保Expert Mode 处于开启状态是什么意思?
...全文
43
3
打赏
收藏
用ATL开发的一个DLL组件,在测试中的问题?
编译已经通过,注册也成功!但是启动OLEVIEW后,书上说点击ATL Developer`s Guide Examples节点,在里面应该能看到自己创建的组件!可是根本就没有这个节点,是怎么回事?书上还说,应该确保Expert Mode 处于开启状态是什么意思?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaohyy
2003-09-16
打赏
举报
回复
>>书上还说,应该确保Expert Mode 处于开启状态是什么意思?
就是在oleview的菜单view中 的第一个选项选中打勾,默认是开启的..
xiaohyy
2003-09-16
打赏
举报
回复
要把第2章的代码编译一次就可以找到了。。
wangweixing2000
2003-09-16
打赏
举报
回复
肯定能找到,只不过不和书上一样,它是以你的接口命名的eg:有一个wwx控件但这个控件的的接口是Iwei.在OLEVIEW中你可以找到一个叫Cwei的节点后面的.tlb是一样的。
用VS2008
ATL
开发
可以显示Gif的ActiveX控件源码.rar
VS2008+
ATL
开发
Gif的ActiveX控件(毛坯) 创建
一个
空的解决方案,名称GifSolution。将来包含控件项目和
测试
项目。新建项目,弹出的对话框
中
选
ATL
项目,名称为GifAnimate确定。弹出的对话框
中
选择
DLL
服务器(可选允许合并代理存根,这样不会产生代理
dll
),完成后编译,这样工程框架就完成了。
组件
分有窗口的和无窗口的,这里应该用有窗口的,所以添加
组件
的时候,外观不要基于none,最好基于CStatic。因为gif是动态的,应该用另
一个
线程绘制,这样不影响主线程响应消息,绘图更加流畅。 为GifAnimate项目添加类-选择
ATL
控件,点击添加,弹出对话框。 1.本文只是举例说明
开发
过程,抛砖而已。 2.样例只是框架,不能直接使用,所有代码没有经过
测试
3.样例接收器GifSink和属性页卡片没有完成,懒了,呵呵 4.样例背景等很多属性没有实现 5.使用了GDI ,但GDI 的Image类的SetActiveFrame函数有
问题
,网上貌似没有解决办法。Debug版本不影响使用,Release版本没有
测试
。如果有兴趣,可以使用IPicture接口,网上很多。
Visual C++实践与提高-COM和COM+篇『PDF』
因文件超过20M不能上传,所以拆分为两个文件分次上传 第1章 COM背景知识 1.1 COM的起源 1.1.1 软件业面临的挑战 1.1.2 传统解决方案 1.1.3 面向对象程序设计方法 1.1.4 最终解决方案:
组件
软件 1.1.5 面向对象的
组件
模型——COM 1.2 COM的发展历程 1.2.1 COM以前的对象技术:DDE、OLE 1、VBX控件 1.2.2 COM首次亮相:OLE2 1.2.3 Microsoft拥抱Internet:ActiveX 1.2.4 更多的新名词:Windows DNA和COM+ 1.2.5 远程对象:ORBs和DCOM 1.2.6 COM的最新版本:COM+ 1.3 COM技术现状 1.3.1 COM与CORBA 1.3.2 COM与Enterprise Java Beans 1.3.3 Windows之外的COM 小结 第2章 从C++到COM 2.1 C++客户重用C++对象——例程DB 2.1.1 C++对象 2.1.2 客户程序 2.2 将C++对象移进
DLL
中
——例程DB_cpp
dll
2.2.1 成员函数的引出 2.2.2 内存分配 2.2.3 Unicode/ASCII兼容 2.2.4 例程实现 2.2.4.1 修改接口文件 2.2.4.2 修改对象程序 2.2.4.3 修改客户程序 2.3 C++对象使用抽象基类——例程DB_vtbl 2.3.1
问题
:私有数据成员被暴露 2.3.2 解决方案:抽象基类 2.3.2.1 什么是抽象基类(Abstract Base Class) 2.3.2.2 实现秘诀:虚函数(Virtual Functions) 2.3.3 使用抽象基类 2.3.4 例程实现 2.3.4.1 修改接口文件 2.3.4.2 修改对象程序 2.3.4.3 修改客户程序 2.4 改由COM库装载C++对象——例程dbalmostcom 2.4.1 COM库 2.4.2 对象创建的标准入口点 2.4.3 标准对象创建API 2.4.4 标准对象注册 2.4.5 例程实现 2.4.5.1 修改接口文件 2.4.5.2 修改对象程序 2.4.5.3 修改客户程序 2.5 将C++对象变成COM对象 2.5.1 引用计数 2.5.2 多接口 2.5.3 IUnknown接口 2.5.4 标准类厂接口:IClassFactory 2.5.5 对象代码的动态卸载 2.5.6 自动注册 2.5.7 例程实现 2.5.7.1 修改接口文件 2.5.7.2 修改对象程序 2.5.7.3 修改客户程序 2.6 为COM对象添加多接口支持 2.6.1 多接口 2.6.2 DEFINE_GUID 2.6.3 例程实现 2.6.3.1 修改接口文件 2.6.3.2 修改对象程序 2.6.3.3 修改客户程序 小结 第3章 COM基础知识 3.1 对象与接口 3.1.1 COM对象 3.1.2 COM接口 3.1.3 IUnknown接口 3.1.3.1 生存期控制:AddRef和Release 3.1.3.2 接口查询:QueryInterface 3.1.4 全球唯一标识符GUID 3.1.5 COM接口定义 3.1.6 接口描述语言IDL 3.2 COM应用模型 3.2.1 客户/服务器模型 3.2.2 进程内
组件
3.2.3 进程外
组件
3.2.4 COM库 3.2.5 HRESULT返回值 3.2.6 COM与注册表 3.3 COM
组件
3.3.1 实现类厂对象 3.3.2 类厂对象的创建 3.3.3 实现自动注册 3.3.4 实现自动卸载 3.4 COM客户 3.4.1 COM对象创建函数 3.4.1.1 CoGetClassObject 3.4.1.2 CoCreateInstance 3.4.1.3 CoCreateInstanceEx 3.4.2 如何调用进程内
组件
3.4.3 COM客户调用进程外
组件
3.5 进一步认识COM 3.5.1 可重用机制:包容和聚合 3.5.2 进程透明性 3.5.3 安全性机制 小结 第4章 COM扩展技术 4.1 可连接对象机制 4.1.1 客户、接收器与可连接对象 4.1.1.1 接收器 4.1.1.2 可连接对象 4.1.1.3 客户 4.1.2 实现可连接对象 4.1.3 实现接收器 4.1.4 建立接收器与连接点的连接 4.1.5 获得出接口的类型信息 4.2 结构化存储 4.2.1 什么叫结构化存储和复合文件 4.2.2 存储对象和IStorage接口 4.2.2.1 IStorage接口 4.2.2.2 获得IStorage指针 4.2.2.3 释放STATSTG内存 4.2.2.4 枚举存储对象
中
的元
使用WTL进行Windows桌面应用
开发
-第一部
基于Windows平台的
ATL
/WTL桌面应用程序
开发
.使用C/C++作为
开发
语言,
开发
Windows本地桌面程序.WTL界面库是MFC的替代选择, 是Win32界面编程的薄封装,可以说学会WTL
开发
即学会了Win32界面
开发
。适合
中
小型公司
开发
基于C/C++语言的客户端项目, 因为WTL可以进行快速
开发
,不需要其他语言.由浅入深介绍WTL桌面
开发
涉及到的原理和技术, 从简单界面到自定义界面,自定义按钮表格都有介绍。在绘制窗口元素如文本,图形介绍了GDI和GDI+的常用的
开发
技巧。介绍了项目
开发
中
遇到的一些细节
问题
.WTL配置少, 只有头文件,不需要编译为库, 性能高,不依赖第三方库,文件小, 运行快,调试方便, 升级方便。
文本语音朗读
组件
系统
请下载作者此软件的免费版本,见资源上面几行 ============================================== 睿智文本语音朗读
组件
包是一款TTS工具软件,它集成了对各种文本进行语音朗读的功能。但它不是一种传统意义上的TTS工具,它本身没有采用Microsoft Speech SDK技术,也没有采用Microsoft Simplified Chinese或Microsoft Sam等专业语音库。它从语音库的格式、文本识别、语音播放等全部采用专有内核
开发
,具有完全独立的知识产权。 1.采用DirectX技术录制、朗读和播放语音,可以在播放过程
中
随时更改朗读播放的速度、语调、音量等。支持在朗读播放语音的同时播放背景音乐或插播各种格式的音乐。支持计算机所支持的各种音频格式来创建生成语音库。 2.采用多线程技术。在文本的智能识别和语音的朗读均采用了多线程技术,因此不会存在卡带等现象,即使同时在播放多种(个)语音或音乐时也可以流畅自如。系统占用资源并不太大,不会影响用户要进行的其它操作。 3.使用
ATL
COM
组件
技术,将对文本的朗读和播放集成到了Internet Explorer浏览器和Microsoft Word
中
,可以随时自由的朗读当前网页或WORD文档。 4.自定义了一套朗读控制关键字,可以通过在文本
中
插入这此关键字实时控制朗读和播放形式。 5.语音库从录音到制作加工到
测试
完全对用户开放,系统在对文本进行朗读播放时可通过使用控制关键字实现多个语音库混合播放的功能,它支持同时混合朗读播放的语音库数量达到100个。 6.提供了多种朗读播放文本的方式,除可以直接在Internet Explorer浏览器和Microsoft Word
中
播放外,还可以在控制台使用命令行模式来朗读和播放,支持对文本文件的朗读播放,也支持对系统粘贴板
中
的内容进行播放。 7.支持程序员进行二次编程
开发
,可以通过编程,在你的程序
中
直接调用
组件
中
提供的Win32 API函数来实现功能更满足要求的专业软件。
组件
系统提供了VC、VC.NET、VB、VB.NET、C#等各种
开发
工具调用
组件
API函数的例程,你只需要几行代码应可以生成功能强大的TTS软件。 8.语音智能识别C++源码完全对用户开放,源码可以根据用户预生成的语音库形式自动创建生成。用户可以自由的对源码进行修改和编绎,通过增加或修改一些代码,使其智能识别的能力进一步提高,或使其更加满足专业需求。代码被编绎后,以后朗读文本时,就会以你在代码
中
的要求进行朗读和播放了。
COM实验报告.pdf
--Shine Chen 1 进程内 COM
组件
的实现 1 实验目的 Microsoft 的 COM(Component Object Model)是目前比较流行的软件
开发
技术之一,它是基于
组件
模型的一种规范。本实验实际演示
一个
COM
组件
的应用,加深对 COM
组件
理论知识的理解。为简单 起见,使用的是进程内 COM
组件
,即 COM 的服务器和客户端在同
一个
进程
中
。 2 实验要求 本实验设计可以参照本人的论文《基于 COM
组件
技术的研究》的内容,也是对本论文的实践检验。 相似之处不在赘述。总体要求是设计
一个
COM
组件
的服务器和
一个
客户端。服务器实现两个接口:数 字加法和字符串连接操作。 客户端是基于对话框的 MFC 程序, 有
一个
友好的界面来
测试
COM
组件
服务 器的功能。 3 实验平台和工具 Windows 操作系统、VC++6.0。 4 实验步骤 4.1 COM 服务器 为了方便本实验 COM 服务器实现使用的是
ATL
(ActiveX Template Library)活动模板库,是一种 微软程序库,也是一套 C++模板库。使用
ATL
能够快速地
开发
出高效、简洁的代码,同时对 COM
组件
的
开发
提供最大限度的代码自动生成以及可视化支持。 COM 服务器的对象如下图 Object IUnknown IMath IStr 图 1 COM 服务器对象 具体的步骤如下: 1. 新建
一个
ATL
工程 (Project) 。命名为 MyCom(如图 2),并选择
DLL
方式(如图 3)。 2 图 2 新建
ATL
工程 图 3 选择
DLL
说明: Dynamic Link Library (
DLL
) 表示建立
一个
DLL
的
组件
程序。 Executable (EXE) 表示建立
一个
EXE 的
组件
程序。 Service (EXE) 表示建立
一个
服务程序,系统启动后就会加载并执行的程序。 Allow merging of proxy/stub code 选择该项表示把"代理/存根"代码合并到
组件
程序
中
,否则 需要单独编译,单独注册代理存根程序。 Support MFC 支持 MFC Support MTS 支持事务处理,即是否支持 COM+ 功能。 2. 增加
ATL
对象类: 选择菜单 Insert\New
ATL
Object\Object 分类\Simple Object 项目 (见图 4) 。 3 图 4 选择建立简单 COM 对象 说明:Object 普通
组件
。其
中
可以选择的
组件
对象类型很多,但本质上,就是让向导帮忙加上一些 默认接口。 3. 增加自定义类 CMath(接口 IMath),见图 5。 图 5 填写类名 4. 填写属性接口,见图 6。 图 6 选择属性 4 5. 添加接口成员函数 图 7 调出增加接口方法的菜单 图 8 增加接口函数 Add 说明: [in]表示参数方向是输入; [out]表示参数方向是输出; [out,retval]表示参数方向是输出,同时可以作为函数运算结果的返回值。
一个
函数
中
,可以有多个[in]、[out],但[retval]只能有
一个
,并且要和[out]组合后在最后
一个
位 置。 图 9 接口函数 5 实现代码如下: STDMETHODIMP CMath::Add(long n1, long n2, long * pnVal) { // TODO: Add your implementation code here * pnVal = n1 + n2; return S_OK; } 6. 添加第二个接口 IStr。 完成上述步骤后,打开 IDL 文件(双击 IMath 接口),手工添加代码,其
中
UUID 的每个
组件
,每 个接口都会不同。在下面的代码
中
加入黑体部分: … //接口的完整描述 [ object, //表示本块描述的是
一个
接口 uuid(E34275D2-B3CA-4BCA-9AC7-0713ABE2F876), helpstring("IMath Interface"), //说明文字 pointer_default(unique) //定义接口函数
中
参数所使用指针的默认属性 ] interface IMath : IUnknown //接口 IMath 派生自 IUnknown { //接口函数列表 [helpstring("method Add")] HRESULT Add([in] long n1, [in] long n2, [out,retval] long * pnVal); }; //增加接口代码 [ object, uuid(36A75A3F-94DE-47fe-AF51-0C0C65316A03), // 手工产生的 IID h
ATL
3,245
社区成员
48,537
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章