VS2010 简单ATL COM开发(上)
来源:互联网 发布:大容量文件上传php 编辑:程序博客网 时间:2024/04/28 04:44
1、打开VS2010,新建ATL COM 项目,步骤:“文件” --》“新建” --》“项目”,选择“Visual C++” --》“ATL 项目” ,填写“名称” FirstCOM --》“确定”。
2、ATL 项目向导,勾选 【支持COM+ 1.0】和【支持部件注册器】,其他默认,点击完成。
3、切换到类视图,右键单击项目“FirstCOM”--》“添加” --》“类”。
4、选“ATL” --》“ATL 简单对象” --》“添加”。
5、ATL 简单对象向导,“简称”中输入类名称FirstClass,其他输入框会自动填写,最下面的“ProgID”没有自动填写,最好自己写上一个,如FirstCOM.math,否则后面无法正确调用组件,点击“完成”。如果出现提示【是否覆盖现有文件】,点击【是】即可。
6、切换到类视图,选中刚才添加的接口IFirstClass,如下,然后右键单击【添加】添加方法。
7、添加方法向导,在"方法名" 下输入Add。增加两个输入参数:勾选【in】,选择参数类型LONG,输入参数名para1,点击“添加”。同样操作增加参数para2。然后增加一个返回参数:先选择参数类型LONG*,再勾选【retval】,输入参数名result,点击添加。点击“完成”即可,如果点击下一步,不需要填写信息,点击“完成”即可。
8、切换到解决方案资源管理器,展开项目“源文件”, 双击 FirstCom.idl 打开IDL定义文件,看到如下代码,就是定义的COM方法了。
9、双击打开FirstClass.cpp 编辑代码:*result = para1 + para2;
10、编译运行,会生成dll文件,并自动注册到系统中。
问题及解决方法
问题1:我在Win64位系统中编译的,出现错误:无法打开预编译头文件:“Debug\FirstCOM.pch”:No such file or directory。
解决:右键点击你创建的项目,选择“属性”,弹出“FirstCOM 属性页”,在左侧展开"配置属性"--》展开“C/C++”--》选中“预编译头”,在右边的“预编译头”下拉菜单中选择“不使用预编译头文件”,点击“确定”按钮退出。
原因分析:编译器一般都是以文件为单位进行编译,如果修改了工程中的一个文件,那么将导致所有文件都要重新编译,这样的编译将耗费很长时间。为了提高编译速度,将那些不常被修改,比较稳定,文件单独包含到一个指定的头文件中, 然后生成一个预编译头文件 *.pch 。 VC++中默认的头文件为 stdAfx.h, 但光有头文件无法编译,所以还要用到StdAfx.cpp,StdAfx.cpp里只包含一句有效代码,这样编译时,通过编译 stdAfx.cpp就把大部分系统头文件编译进来, Debug目录下便会产生一个 存储了预编译信息的 *.pch 文件。如果 *.pch文件损坏或者不存在,就会出现“问题1”所示的无法打开预编译头文件的错。
如需深究,可参考博客:无法打开包括文件:“Stdfx.h”
问题2:解决了问题1之后,又出现:error MSB8011: 未能注册输出。请尝试启用“逐用户重定向”,或者使用提升的权限从命令提示符处注册该组件。
问题3:无法启动程序:“I:\VS Project\FirstCOM\Debug\FirstCOM.dll”。
解决:程序 --》 附件 --》 命令提示符,在”命令提示符“上点击鼠标右键,选择”以管理员身份运行“命令,这个时候将打开Dos命令窗口。
接下来输入:regsvr32 “I:\VS Project\FirstCOM\Debug\FirstCOM.dll” (就是 regsvr32+.dll文件所在的完全路径了,全路径最好用引号括起来)
- VS2010 简单ATL COM开发(上)
- VS2010 简单ATL COM开发(上)
- VS2010 简单ATL COM开发(上)
- VS2010 简单ATL COM开发(上)
- VS2010 简单ATL COM开发(下)
- VS2010 简单ATL COM开发(下)
- VS2010 简单ATL COM开发(下)
- VS2010 简单ATL COM开发(下)
- VS2010 简单ATL COM开发(下)
- VS2010 简单ATL COM开发
- VS2010 简单ATL COM开发
- VS2010 简单ATL COM开发
- 2010 简单ATL COM开发(上)
- 图文并茂 简单 ATL COM开发
- ATL COM组件开发——VS2010
- vs2010 新建ATL COM 项目( 图文并茂 )
- 使用ATL开发简单COM组件(1)
- 简单 ATL COM组件开发介绍
- 2017年5月21、22日r-u-a-n-k-a-o整理
- ZGHKLMJD,电信诈骗犯,海南人
- 机器学习(十五)——loss function比较、独立成分分析
- 查看当前分支,创建并切换分支
- 使用WebRTC搭建前端视频聊天室——信令篇
- VS2010 简单ATL COM开发(上)
- 代码编辑器Sublime Text 3使用教程及简体中文汉化包
- MAC 下NetBeans 无法正确部署Tomcat的问题
- 继承的理解与应用的方法
- php从数据库读取数据,并以json格式返回数据
- 源码之ListView分析
- VeriSilicon(成都)招聘ASIC Design/DV/Video IP Design/算法等职位
- 如何在12306上买到下铺
- https OkHttpClient 的使用