VC TCHAR转char ~ BSTR转换成char*

本文介绍了TCHAR宏在C++中用于支持ANSI和Unicode编码字符串的方式,并详细阐述了BSTR作为COM字符串的三种创建方法及其应用场景。

TCHAR

TCHAR是通过define定义的字符串宏

C++支持两种字符串,即常规的ANSI编码(使用""包裹)和Unicode编码(使用L""包裹)

#include <stdio.h>

int main(void)

{

_TCHAR* tchar_str="weihuanzhen";

char  char_str[256];

sprintf(char_str, "%S", tchar_str);

 return 0;

}

 

BSTR

它被描述成一个与自动化相兼容的类型,由于操作系统提供相应的API函数(如SysAllocString)来管理它以及一些默认的调度代码。因此BSTR实际上就是一个COM字符串,但它却在自动化技术以外的多种场合下得到广泛使用

方法1,使用COleVariant或_variant_t。例如:
//COleVariant strVar("This is a test");
_variant_t strVar("This is a test");
BSTR bstrText = strVar.bstrVal;

方法2,使用_bstr_t,这是一种最简单的方法。例如:
BSTR bstrText = _bstr_t("This is a test");

方法3,使用CComBSTR。例如:
BSTR bstrText = CComBSTR("This is a test");

CComBSTR bstr("This is a test");
BSTR bstrText = bstr.m_str;

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值