`

com

阅读更多

_bstr_t在VC中是为了兼容BSTR类型而增加的,也就是为了实现LPCSTR与BSTR转换。

它需要头文件#include <comdef.h>

_bstr_t 是BSTR的包装类
转换方法

LPSTR strDemo="Test";
_bstr_t bstr(strDemo);
建议加上try,catch,用于catch(_com_error &e)



The following pseudocode shows the typical use of CComBSTR:

HRESULT CMyObject::MyMethod(IOtherObject* pSomething)
{
CComBSTR bstrText(L"Hello");
bstrText += " again"; // LPCSTR conversion
bstrText.ToUpper();
pSomething->Display(bstrText); // [in] parameter
MessageBoxW(0, bstrText, L"Test", MB_OK); // Assumes Windows NT
}
As you can see, CComBSTR significantly simplifies the use of BSTRs. Four uses of CComBSTR, however, require special care:
Freeing the BSTR explicitly


Using CComBSTR as an [out] parameter


Using a CComBSTR automatic variable in right-side assignments


Using a CComBSTR member variable in right-side assignments
当 在BSTR*所在的位置作为一个[out]参数传递CComBSTR时,你必须先调用Empty释放string的内容,就象下面这样:HRESULT CMyObject::MyMethod2(ISomething* p, /*[out]*/ BSTR* pbstr)
{
CComBSTR bstrText;

bstrText = L"Some assignment"; // BSTR is allocated.

bstrText.Empty(); // Must call empty before
pSomething->GetText(&bstrText); // using as an [out] parameter.
if(bstrText != L"Schaller")
bstrText += "Hello"; // Convert from LPCSTR.
}
因为在重写BSTR内容之前方法COM 为[out] 参数的规则是并不调用sysfreestring,这讲出现泄漏。

分享到:
评论

相关推荐

    Visual C++实践与提高-COM和COM+篇『PDF』

    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...

    com好书合集 com本质论 COM原理与应用COM技术内幕 深入解析ATL

    COM,Component Object Model,是微软提出的一种组件对象模型,它是一种接口标准,允许不同软件组件之间进行交互。COM是Windows操作系统中的核心技术之一,广泛应用于软件开发,尤其是系统级和企业级应用程序。以下...

    COM与COM+从入门到精通(pdf版本,含源码)

    第一部分 了解COM 第1章 COM概述 何谓CoM COM术语 COM利与弊 COM的好处 COM的局限性 COM组件与接口 何谓接口 接口特征 接口类型 接口规则 接口设计 COM组件的实现规则 实现IUnknown规则 内存管理...

    com0com虚拟串口

    **标题:**com0com虚拟串口 **正文:** com0com,全称为"Null-modem emulator over COM port zero",是一款强大的开源工具,它为Windows操作系统提供了虚拟串口的功能。这款驱动程序由内核模式支持,允许用户在...

    VC++编写COM组件教程

    **VC++ 编写COM组件教程** COM(Component Object Model)是微软提出的一种软件组件模型,它允许不同编程语言和操作系统环境中的对象相互通信。在VC++中,利用ATL(Active Template Library)库可以简化COM组件的...

    C语言实现COM组件

    COM(Component Object Model)组件对象模型是微软提出的一种软件组件技术,它允许不同应用程序之间共享代码和服务。在本文中,我们将深入探讨如何使用C语言来实现一个简单的COM组件,这将帮助我们理解COM的实现机制...

    C#调用COM组件方法总结

    C#调用COM组件方法总结 本篇文章总结了C#调用COM组件的方法,涵盖了将COM类型信息转换为.NET元数据、查看元数据、测试程序等多个步骤。下面是对应的知识点: 一、将COM类型信息转换为.NET元数据 在C#调用COM组件...

    OLE/COM Object Viewer

    OLE/COM对象查看器是一款强大的工具,主要用于帮助开发者和系统管理员深入理解OLE(Object Linking and Embedding)和COM(Component Object Model)技术。OLE/COM是微软在Windows平台上实现对象间交互的重要机制,...

    VC++ COM组件开发相关实例

    3 组件的标准 - COM(Component Object Model ) 3.1 COM是一种编程规范,不论任何开发语言 要实现组件都必须按照这种规范来实现。 组件和开发语言无关。 这些编程规范定义了组件的操作、接口的 访问等等。 ...

    COM本质论 高清扫描版

    《COM本质论》不是一本供新手学习的书,也不是一本教授如何开发COM组件的书,而是一本帮助读者在一定的基础上继续提高对COM的理解的书,许多内容需要一定的经验基础才能看得明白。 书 名 COM本质论 又 名 Essential ...

    USB 2.0 to COM Device 串口线 驱动程序

    USB 2.0 to COM Device 串口线驱动程序是一种技术解决方案,用于将USB接口转换为传统的串行通信端口(COM)。这种设备通常由一个USB到UART(通用异步接收发送器)桥接器芯片构成,如PL2303,它允许计算机通过USB接口...

    java使用Com4j读取visio

    Java使用Com4j读取Visio是通过Java的COM(Component Object Model)接口来操作Microsoft Visio应用程序,实现对Visio文件的访问和处理。Com4j是一个开源库,它为Java提供了与COM对象交互的能力,弥补了Java不直接...

    查看com组件工具 comview

    COM组件是微软Windows操作系统中的一种技术,用于实现应用程序之间的组件重用和互操作性。COM(Component Object Model)是一种二进制标准,允许不同程序之间共享对象,促进软件开发的效率和灵活性。`Comview`是一款...

    com组件注册查看器

    COM组件,全称为Component Object Model,是微软提出的一种软件组件模型。它允许程序中的不同部分在内存中以独立的对象形式存在,并通过接口进行交互,从而实现了跨语言、跨平台的互操作性。COM组件可以是DLL(动态...

    COM载板设计之1-8(中文)

    COM载板设计之一PCB的设计.pdf COM载板设计之二电源与复位.pdf COM载板设计之三I2C总线及其他信号.pdf COM载板设计之四SATA和PCI接口.pdf COM载板设计之五LAN和USB接口.pdf COM载板设计之六VGA和音频AC97_HDA...

    c++开发一个简单累加的COM组件

    "C++开发一个简单累加的COM组件" COM组件是Component Object Model的缩写,用于实现跨语言、跨平台的组件复用。COM组件是基于interface的,它将接口和实现分离,使得开发者可以独立地develop和维护接口和实现。 ...

    《com原理与应用》高清版的pdf

    COM,全称Component Object Model,是微软提出的一种组件对象模型,它是一种软件接口技术,用于构建可重用的、跨语言、跨平台的组件。潘爱民所著的《COM原理与应用》是一本深入解析COM技术的专业书籍,旨在帮助读者...

    win7com口驱动安装及设置

    在Windows 7操作系统中,有时候用户会遇到COM端口无法识别单片机或者其他串口设备的问题,这可能是由于缺少相应的驱动程序或者驱动设置不正确导致的。本文将详细讲解如何在Win7 32位或64位系统,包括盗版系统中,...

    COM技术内幕——微软组件对象模型(附加源代码).pdf

    COM(Component Object Model)是微软提出的一种组件编程模型,它为软件开发提供了一种跨语言、跨平台的接口规范,使得不同的应用程序可以共享和交互数据。本书“COM技术内幕——微软组件对象模型”深入探讨了COM的...

    COM TO KEY,串口输入模拟键盘输入

    COM TO KEY技术是一种创新的方法,它允许通过串行端口(COM口)接收的数据转换为模拟的键盘输入。这项技术广泛应用于自动化系统、工业控制、数据采集以及其他需要将非标准输入设备转化为键盘输入的场景。下面我们将...

Global site tag (gtag.js) - Google Analytics