CComBSTR使用中-1异常
来源:互联网 发布:雨季网络 编辑:程序博客网 时间:2024/04/27 22:55
.NET 2005中对很多类在实现细节上都做了很大改动,上一篇说了map中用于插入部分的改变,这里再说一个关于CComBSTR类的。COM编程中,CComBSTR是很有用的一个BSTR包装类,用于跨平台处理字符串。它的构造函数有几个,其中一个接受整型参数。
CComBSTR (
int nSize
);
实现代码如下
CComBSTR(__in int nSize)
{
if (nSize == 0)
m_str = NULL;
else
{
m_str = ::SysAllocStringLen(NULL, nSize);
if (!*this)
{
AtlThrow(E_OUTOFMEMORY);
}
}
}
因此,如果nSize==-1,则程序抛出异常,导致程序中断。个人感觉nSize==0应改为nSize<1好一些,这样把任何非负的数都作为空字符串处理。此处在判断逻辑上有瑕疵,导致错误的报告内存分配错误问题(::SysAllocStringLen(NULL, -1)合法,返回NULL)。
- CComBSTR使用中-1异常
- CComBSTR使用注意
- CComBSTR, _bstr_t 使用原则
- CComBSTR,
- CComBSTR,
- CComBSTR,
- com中CComBSTR 的利弊
- 正确使用CComSafeArray CComVariant CComBstr
- 正确使用 CComSafeArray, CComVariant 和 CComBSTR
- VC中BSTR、Char*、CString和CComBSTR类型的转换
- VC中BSTR、Char*、CString和CComBSTR类型的转换
- VC中BSTR、Char*、CString和CComBSTR类型的转换
- CComBSTR类
- CComBSTR Class
- CComBSTR类
- C#中使用异常总结
- JAVA中异常的使用
- myeclipse中使用hibernate的异常(hibernate5.1)
- ERP制成品成本计算整理(直接原料)
- 用一个简单的办法生成全部排序
- php session配置
- 数据库设计的体会
- 学习Ajax技术
- CComBSTR使用中-1异常
- 感觉CSDN的还不错
- Moss 2007 入门(1) - 功能概述
- Javascript中最常用的55个经典技巧
- 总结:子窗口创建及父窗口与子窗口之间通信
- MOSS 2007 部署图示指南
- 设计模式笔记
- 虚拟化带来服务器一片光明
- moss2007安装部署历程