当前位置: 首页 > 编程技术 > 正文

BSTR转CString

   BSTR在ATL和Word编程时候遇到的比较多,前面的文章中有提到过将Cstring转为BSTR,感兴趣的可以参考CString转BSTR

这篇文章要实现的是BSTR转CString,CString转BSTR可以借助于CString的成员函数进行转换,但是BSTR转CString就不能借助于CString的成员函数了,

为什么要把BSTR转为CString呢?

原因在于CString转为其他类型的数据的方法比BSTR多,而且方法比较容易找到

方法:

首先,方法只适用于ATL项目中,不过在非ATL的项目中,应该较少遇到BSTR

转换的示例代码:

BSTR bstrContext = OLESTR("");  //声明一个BSTR变量,并赋初值为空
CString sContext = COLE2T(bstrContext); //使用COLE2T宏来实现BSTR向CString的转换

可以看到。我们使用COLE2T这个宏来实现BSTR向CString的转换

如果对于其他类型的转换不是很熟悉的话,可以参考下面的文章:

http://blog.csdn.net/yyyzlf/article/details/5209934

和这篇文章:

http://apps.hi.baidu.com/share/detail/24060112

另外,如果我们想要给CString或者是BSTR赋初值的话

比如:

CString sTest = “Hello Word”;
BSTR bstrTexst = "Hello World";

在ATL中,这样的写法可能会出错,那么我们在ATL中如何给CString或者是BSTR赋初值呢?

方法就是使用宏 OLESTR;

在ATL中,我们使用下面的方法来给CString对象或者是BSTR赋值:

CString sTest = OLESTR(“Hello World”);
BSTR bstrTest = OLESTR(“!”);

这样BSTR转CString和对BSTR和CString对象赋初值就很容易实现了



本文固定链接: http://kuaile.in/archives/1121 | 蒲公英的博客

该日志由 蒲公英 于2012年07月21日发表在 编程技术 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: BSTR转CString | 蒲公英的博客
关键字: , ,

BSTR转CString:等您坐沙发呢!

发表评论


You must enable javascript to see captcha here!

快捷键:Ctrl+Enter