VC6.0上编译通过,console程序,使用静态MFC库。也许有不对的地方,欢迎指正
#include <stdio.h>
#include <afx.h>
#include <comdef.h>
#include <atlbase.h>
void main()
{
BSTR bstrText;
_bstr_t _bstr_tText;
CString cstrText;
LPTSTR pText;
CComBSTR ccomstrText;
VARIANT variantText;
_variant_t _variant_tText;
//char*转成其他类型
_bstr_tText = "系统设置";
bstrText = _com_util::ConvertStringToBSTR("通道设置");
SysFreeString(bstrText); //必须释放
cstrText = "用户管理";
ccomstrText = "日志管理";
variantText.vt = VT_BSTR;
variantText.bstrVal = _com_util::ConvertStringToBSTR("jinan1861");
_variant_tText = "报警管理";
//BSTR转成其他类型
bstrText = _com_util::ConvertStringToBSTR("通道设置");
cstrText = bstrText;
_bstr_tText = bstrText;
ccomstrText = bstrText;
variantText.vt = VT_BSTR;
variantText.bstrVal = bstrText;
_variant_tText = bstrText;
pText = _com_util::ConvertBSTRToString(bstrText);
SysFreeString(bstrText);
delete(pText); //需要delete
//_bstr_t转成其他类型
_bstr_tText = "系统设置";
cstrText = (LPCTSTR)_bstr_tText;
bstrText = (BSTR)_bstr_tText;
pText = (char*)_bstr_tText;
ccomstrText = (BSTR)_bstr_tText;
variantText.vt = VT_BSTR;
variantText.bstrVal = (BSTR)_bstr_tText;
_variant_tText = _bstr_tText;
//Cstring转成其他类型
cstrText = "日志管理";
LPCTSTR pText1 = (LPCTSTR)cstrText;
bstrText = _com_util::ConvertStringToBSTR( (LPCTSTR)cstrText );
variantText.vt = VT_BSTR;
variantText.bstrVal = bstrText;
SysFreeString(bstrText);
_bstr_tText = cstrText;
ccomstrText = cstrText;
_variant_tText = (LPCTSTR)cstrText;
//ccomstrText转成其他类型
ccomstrText = "用户管理";
cstrText = ccomstrText;
_bstr_tText = ccomstrText;
bstrText = ccomstrText;
pText1 = (LPCTSTR)cstrText;
variantText.vt = VT_BSTR;
variantText.bstrVal = (BSTR)ccomstrText;
_variant_tText = (BSTR)ccomstrText;
//VARIANT转成其他类型
if (variantText.vt == VT_BSTR)
{
//variantText.bstrVal是BSTR类型,参考BSTR的转换方法
}
//_variant_t是VARIANT的封装类,
//构造函数和操作符'='支持VARIANT,_bstr_t和LPTSTR
//_variant_t转成其他类型
_variant_tText = "抓图管理";
_bstr_tText = (_bstr_t)_variant_tText;
cstrText = (LPCTSTR)_bstr_tText;
pText1 = (char*)_bstr_tText;
bstrText = (_bstr_t)_variant_tText;
_bstr_tText = _variant_tText;
ccomstrText = (BSTR)_bstr_tText;
variantText = _variant_tText;
getchar();
}