分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
关于BSTR、_bstr_t详见
《_bstr_t与_variant_t》
。
BSTR转CString
CString转
_bstr_t
CString转BSTR
BSTR bstr;
CString strSql;bstr = strSql.AllocSysString();
…
SysFreeString
(
bstrText
);
// 用完释放
注意:用完之后必须使用SysFreeString
释放!!!
BSTR bstr = ::SysAllocString(L"Test");
CString strSql;strSql.Empty();strSql = (LPCSTR)bstr;
或
BSTR bstr = ::SysAllocString(L"Test");
CString str(bstr);
_bstr_t bstr;
CString strSql;bstr = (_bstr_t)strSql;
_bstr_t转 CString_bstr_t bstr;
CString strSql;strSql = (LPCSTR)bstr;
BSTR转换成char*
方法一,使用ConvertBSTRToString
BSTR bstrText
=
::
SysAllocString
(
L
"Test"
);
char
*
lpszText2
=
_com_util
::
ConvertBSTRToString
(
bstrText
);
SysFreeString
(
bstrText
);
// 用完释放
delete
[]
lpszText2
;
方法二,使用_bstr_t的赋值运算符重载
_bstr_t
b
=
bstrText
;
char
*
lpszText2
=
b
;
char*转换成BSTR
方法一,使用SysAllocString等API函数
BSTR bstrText
=
::
SysAllocString
(
L
"Test"
);
BSTR bstrText
=
::
SysAllocStringLen
(
L
"Test"
,
4
);
BSTR bstrText
=
::
SysAllocStringByteLen
(
"Test"
,
4
);
方法二,使用COleVariant或_variant_t
//COleVariant strVar("This is a test");
_variant_t strVar("This is a test");
BSTR bstrText = strVar.bstrVal;
方法三,使用_bstr_t,这是一种最简单的方法
BSTR bstrText = _bstr_t("This is a test");
方法四,使用CComBSTR
BSTR bstrText = CComBSTR("This is a test");
或
CComBSTR
bstr
(
"This is a test"
);
BSTR bstrText
=
bstr
.
m_str
;
方法五,使用ConvertStringToBSTR
char
*
lpszText
=
"Test"
;
BSTR bstrText
=
_com_util
::
ConvertStringToBSTR
(
lpszText
);
给我老师的人工智能教程打call!http://blog.youkuaiyun.com/jiangjunshow
