BSTR,_bstr_t,CComBSTR,VARIANT,_variant_t,CString的转换

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();

}

转载于:https://www.cnblogs.com/GoodGoodWorkDayDayUp/archive/2010/11/15/1877655.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值