我搜集的C++字符类型的相互转换

基本类型 char*,int,wchar_t,BSTR,VARIANT
封装类型 string,CString,_bstr_t,CComBSTR,_variant_t,COleVariant


char* to int,long,double
atoi(char*),atol(char*),atof(char*)

int to char*,long to char*
itoa(i,char*,进制),ltoa(l,char*,进制); 

wchar_t to const char
W2CA()

char to const wchar_t
A2CW()

wchar_t to char
W2A()

char to wchar_t
A2W()

CString to string
例子:
CString a = "xyz";
string b = a.GetBuffer(0);

string to CString
例子:
string a = "xyz";
CString b = a.c_str();

const char* to char*
通过使用(LPSTR)(LPCTSTR); 
 
BSTR to char*

通过使用_com_util::ConvertBSTRToString(BSTR pSrc);  

char* to BSTR

通过使用_com_util::ConvertStringToBSTR(const char *pSrc);

_variant_t to others

通过使用VariantChangeType(&var,&var,0,VT_XXXX);  

char* to _variant_t
例子:
_variant_t x = (_bstr_t)"姓名";

BSTR to VARIANT
例子:
BSTR x = SysAllocString(L"Hello");  
VARIANT myVariant;   myVariant.vt = VT_BSTR;  
myVariant.bstrVal = x;  
SysFreeString(x); 

CString to VARIANT
例子:
CString   myCString(_T("My String"));  
CString   mySecondString;   
USES_CONVERSION;  
BSTR y = SysAllocString(T2COLE(myCString));  
myVariant.bstrVal = y;  
mySecondString = y;  
SysFreeString(y);  

CString to BSTR--------------通过使用CStringT::AllocSysString()
例子:
CString str("This is a test");
BSTR bstrText = str.AllocSysString();

SysFreeString(bstrText);

BSTR to CString--------------通过使用::SysAllocString(wchar_t);
例子:
BSTR bstrText = ::SysAllocString(L"Test");
CStringA str;
str.Empty();
str = bstrText; 
SysFreeString(bstrText);  

_bstr_t to CString
通过使用_com_util::ConvertBSTRToString(bstr);

CString to _bstr_t
通过使用_com_util::ConvertStringToBSTR(const char*);

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值