BSTR与char*、cstring、CComBSTR的转换
// BSTR_Convert.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <comutil.h> // _com_util::ConvertBSTRToString
#include <atlbase.h> //CComBSTR
#include <atlstr.h> #pragma comment(lib, "comsuppw.lib") using namespace _com_util; int _tmain(int argc, _TCHAR* argv[])
{
/****** BSTR->char* *****/
//方法一使用 ConvertBSTRToString
//BSTR bstrText = ::SysAllocString(L"Test");
//char* lpszText = _com_util::ConvertBSTRToString(bstrText);
//SysFreeString(bstrText);//用完释放
//delete[] lpszText;
//方法二 使用_bstr_t的赋值运算符重载
//_bstr_t b = bstrText;
//char* lpstrText1 = b; /****** char*->BSTR *****/
//方式一 使用SysAllocString等API函数
//BSTR bstrText = ::SysAllocString(L"Test");
//BSTR bstrText1 = ::SysAllocStringLen(L"Test1",3);
//BSTR bstrText2 = ::SysAllocStringByteLen("Test2",4);//乱码 //方式二 使用COleVariant或_variant 编译出错 属于MFC?无法再WIN32下使用?
//COleVariant strVar("this is a test");
//_variant_t strVar1("this is a test");
//BSTR bstrText = strVar.bstrVal;
//BSTR bstrText1 = strVar1.bstrVal; //方式三 方法三,使用_bstr_t,这是一种最简单的方法。
//BSTR bstrText = _bstr_t("This is a test"); //方法四,使用CComBSTR。例如:
//BSTR bstrText = CComBSTR("This is a test");
//CComBSTR bstr1("This is a test");
//BSTR bstrText1 = bstr1.m_str; //方法五,使用ConvertStringToBSTR。
//char* lpszText = "Test";
//BSTR bstrText2 = _com_util::ConvertStringToBSTR(lpszText); /******* CString->BSTR *******/
//通 常是通过使用CStringT::AllocSysString来实现
CString cstr("this is a test");
BSTR bstrText = cstr.AllocSysString();
SysFreeString(bstrText); /******* BSTR -> CString *******/
//BSTR bstrText = ::SysAllocString(L"Test");
//CString cstr;
//cstr.Empty();
//cstr = bstrText;
// 或 CStringA str(bstrText); system("pause");
return ;
}
BSTR与char*、cstring、CComBSTR的转换的更多相关文章
- 转:char*, char[] ,CString, string的转换
转:char*, char[] ,CString, string的转换 (一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准 ...
- VC中BSTR、Char和CString类型的转换
1.char*转换成CString 若将char*转换成CString,除了直接赋值外,还可使用CString::format进行.例如: char chArray[] = "This is ...
- MFC中char*,string和CString之间的转换
MFC中char*,string和CString之间的转换 一. 将CString类转换成char*(LPSTR)类型 方法一,使用强制转换.例如: CString theString( &q ...
- CString string char* char 之间的字符转换(多种方法)
在写程序的时候,我们经常遇到各种各样的类型转换,比如 char* CString string 之间的互相转换.首先解释下三者的含义. CString 是一种很有用的数据类型.它们很大程度上简化了MF ...
- Char* ,CString ,WCHAR*之间的转换
关于Char* ,CString ,WCHAR*之间的转换问题 GDI+所有类的接口函数如果要传递字符串作为参数的话,似乎都用UNICODE串,即WCHAR*.我开始也被整得晕头转向,因为窗口编程所用 ...
- CString与string、char*的区别和转换
转自:http://blog.csdn.net/luoweifu/article/details/20232379 我们在C++的开发中经常会碰到string.char*以及CString,这三种都表 ...
- 【转】CString与string、char*的区别和转换
我们在C++的开发中经常会碰到string.char*以及CString,这三种都表示字符串类型,有很多相似又不同的地方,常常让人混淆.下面详细介绍这三者的区别.联系和转换: 各自的区别 char*: ...
- MFC string char cstring 类型转换
在Unicode环境下用以下转换: CString z_strCurtTime = _T(""); // 获取当前时间 CTime z_tCurTime = CTime::GetC ...
- NSString / NSData / char* 类型之间的转换
转自网络: NSString / NSData / char* 类型之间的转换 1. NSString转化为UNICODE String: (NSString*)fname = @“Test”; ch ...
- char类型的数值转换
在视频教程中,你已经认识到了数字类型之间.字符串和其他类型之间的转换.而某些时候,我们还需要将char类型转换为int类型,或者把int类型转换为char类型. 这篇文章,将介绍在代码中虽然不太常用, ...
随机推荐
- JavaScript高级 面向对象(10)--onload与jq中ready的区别
说明(2017.4.2): 1. 在body中放一个img标签,src链接一张图片,那么页面会先读取html的document文档,然后再读取外部资源(这里没加onload其实就是从上往下顺序读取). ...
- 基于jQuery左右滑动切换图片代码
分享一款基于jQuery左右滑动切换图片代码.这是一款基于jQuery实现的左右滑动切换焦点图代码.效果图如下: 在线预览 源码下载 实现的代码: <div class="v_ou ...
- 一款纯css3实现的图片3D翻转幻灯片
之前介绍了好多款网页幻灯片,今天要给大家再带来一款纯css3实现的图片3D翻转幻灯片.这款幻灯片图片轮播采用了3D翻转的形式,效果非常不错.一起看下效果图: 在线预览 源码下载 实现的代码. ht ...
- Hadoop 回收站
一.回收站简介: 在HDFS里,删除文件时,不会真正的删除,其实是放入回收站/trash,回收站里的文件可以快速恢复. 可以设置一个时间阀值,当回收站里文件的存放时间超过这个阀值或是回收站被清空时,文 ...
- Android APP 分享图片文字到微信刚開始正常,后面就不弹出分享框了
依照官方的流程走了一遍.一切顺利,分享成功了.本来以为能够大功告成了,结果睡了一觉,第二天要给客户演示了.才发现TMD坑爹了,不能分享了,第三方的分享栏弹不出来了.我一阵惊慌,还好非常快找到了解决的方 ...
- 用 CSS 实现打印显示底色
上一篇有讲到如何在浏览器端实现打印功能.后面发现有个问题,就是表格表头有背景颜色,但是实际打印出来无背景颜色.网上的方法主要有以下几种实现方式: 1.把背景颜色写成行内样式,如下图所示: 但是发现这样 ...
- r函数知识总结
1. rbind(), cbind(): 构造.合并vector 或matrix为一个矩阵:cbind(1, 1:10) ----默认列合并, rbind(1, 1:10) ----行合并(or构造 ...
- RunnableException与CheckedException
Checked Exception 编译时异常 编译的时候检查你的代码可能在运行的时候抛出异常,这通常在编译的时候要去处理的. RunnableException 运行时异常,可以编译通过,但如果不处 ...
- mssql 设置id自增 设置主键
主键自增长列在进行数据插入的时候,很有用的,如可以获取返回的自增ID值,接下来将介绍SQL Server如何设置主键自增长列,感兴趣的朋友可以了解下,希望本文对你有所帮助 1.新建一数据表,里 ...
- Spring RestTemplate 小结
关于RestTemplate 首先,你可以把它理解为一个发起请求并接收响应的工具类(功能类似浏览器). 其次,它其实是一个壳,具体还是通过调用别的接口来实现(如jdk自带的连接,或者HttpClien ...