zoukankan      html  css  js  c++  java
  • 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();

    }

  • 相关阅读:
    [css]display: table-cell,用div做分列布局
    [css]《CSS知多少》
    关于安装Android Studio的一些问题的解决方法
    枚举
    揭开计算机的神秘面纱
    Android模拟器访问本地Web应用
    Android开发中常用的Eclipse快捷键
    详解Windows平台搭建Androiod开发环境
    Web 应用的安全性
    坚持才能成功------王健林
  • 原文地址:https://www.cnblogs.com/GoodGoodWorkDayDayUp/p/1877655.html
Copyright © 2011-2022 走看看