ATL错误处理

_com_issue_error(HRESULT x)

throw a _com_error object


 1 try
2 {
3 HRESULT hr;
4 ...
5 if (FAILED(hr))
6 _com_issue_error(hr);
7 }
8 catch(_com_error & e)
9 {
10 ...
11 cout << "HRESULT message is" << e.ErrorMessage() << endl;
12 if (e.ErrorInfo())
13 cout << e.Description() << endl;
14 return -1;
15 }

时间: 2024-10-16 02:16:36

ATL错误处理的相关文章

ATL常见错误处理

1.VS2008中ATL项目 “对象不支持此属性和方法”问题 参考地址:http://blog.sina.com.cn/s/blog_4dfc39d10100slhx.html

STL,ATL,WTL之间的联系和区别

一.STL即 Standard Template Library (标准模板库) STL是惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和David R Musser在惠普实验室工作时所开发出来的.现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间.STL的代码从广义上讲分为三类:algorithm(算法).container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比于

ActiveX控件(ATL篇)

目录 第1章 VC++6.0创建    2 1.1 目标    2 1.2 创建项目    2 1.3 增加COM类    4 1.4 属性    7 1.5 事件    8 1.6 实现连接点    9 1.7 编码    11 1.7.1 增加成员变量    11 1.7.2 初始化成员变量    11 1.7.3 完成属性赋值代码    11 1.7.4 完成控件绘制代码    11 1.7.5 响应鼠标左键按下消息    13 1.7.6 修改DllUnregisterServer   

【转载】COM 组件设计与应用(五)——用 ATL 写第一个组件

原文:http://vckbase.com/index.php/wv/1215.html 一.前言 1.如果你在使用 vc5.0 及以前的版本,请你升级为 vc6.0 或 vc.net 2003: 2.如果你在使用 vc6.0 (ATL 3.0)请阅读本回内容: 3.如果你在使用 vc.net(ATL 7.0)请阅读下回内容:(当然读读本文内容也不错) 4.这第一个组件,除了所有 COM 组件必须的 IUnknown 接口外,我们再实现一个自己定义的接口 IFun,它有两个函数: Add()完成

【转载】COM 组件设计与应用(六)——用 ATL 写第一个组件

原文:http://vckbase.com/index.php/wv/1216.html 一.前言 1.与 <COM 组件设计与应用(五)>的内容基本一致.但本回讲解的是在 vc.net 2003 下的使用方法,即使你不再使用vc6.0,也请和上一回的内容,参照比对. 2.这第一个组件,除了所有 COM 组件必须的 IUnknown 接口外,我们再实现一个自己定义的接口 IFun,它有两个函数: Add()完成两个数值的加法,Cat()完成两个字符串的连接. 3.下面......好好听讲! 开

C++编译错误 2001 1120

无法解析的外部符号"symbol" 代码引用了链接器无法在库和对象文件中找到的内容(如函数.变量或标签). 该错误信息之后为错误 LNK1120. 可能的原因 : 在将托管库或 Web 服务项目从 Visual C++ 2003 升级到 Visual C++ 2005 时,/Zl 编译器选项将添加到"命令行"属性页中.这将导致 LNK2001.请从"命令行"属性页中移除 /Zl,以解决此问题.有关更多信息,请参见 /Zl(省略默认库名) 和 如何

【转载】ATL问题集

原文:http://blog.csdn.net/fengrx/article/details/4171629 这些问题是以前在csdn当版主是一些朋友整理的,今天找到了,贴到这里来! #1 如何使用控件不能改变大小? 答:有时我们需要创建不可改变大小的控件,像那种在运行时没有界面的控件(例:时间控件,SysInfo 等),想做到这种功能的话,请把以下代码加入到控件类的构造函数: m_bAutoSize = TRUE; SIZEL size = {24, 24}; AtlPixelToHiMetr

ActiveX,ATL和COM技术

首先COM的诞生本来就是基于二进制的复用思想,一直影响到了DLL的技术基础.它是一种windows下二进制模块组件与组件之间通信的规范,ActiveX就需要依赖这个技术,因为浏览器的东西可能需要获取客户端本地的底层信息.而ATL库呢,这个类库就是辅助编写ActiveX的类库,方便. 首先需要大致了解下COM的思想:http://www.cnblogs.com/dwjaissk/archive/2012/12/19/2824672.html 然后ATL和ActiveX编写:http://www.c

ATL 创建COM对象

之前写了一篇原始dll的创建过程,以及直接使用LoadLibrary加载动态库. 但ATL所做的一个很重要的功能就是引入COM对象这个概念. 首先, ATL active template library为活动模板库,ATL为asp代码中提供COM对象应用.而一般使用活动模版库来创建COM组件.简单来说ATL一般作为方便快捷的COM开发工具使用.而ATL中使用的基本技术为 COM技术,C++模版技术和C++多继承技术. 接下来是使用ATL开发一个COM组件的基本过程,附带截图: 1.新建一个AT