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

    }

  • 相关阅读:
    python 字符串替换功能 string.replace()可以用正则表达式,更优雅
    windows 10 如何设定计划任务自动执行 python 脚本?
    win10 设定计划任务时提示所指定的账户名称无效,如何解决?
    pandas数据分析输出excel产生文本形式存储的百分比数据,如何处理?
    coinmarketcap前20之cardano卡尔达诺(ADA艾达币)
    【SpringMVC】参数绑定
    【SpringMVC】入门
    【Hibernate】 二级缓存及查询缓存
    【Hibernate】事务处理
    【Hibernate】抓取策略
  • 原文地址:https://www.cnblogs.com/GoodGoodWorkDayDayUp/p/1877655.html
Copyright © 2011-2022 走看看