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

    }

  • 相关阅读:
    递归遍历多维数组(树数据结构)的超级简单方式,并且可以递归超过200层,摘自<<PHP精粹:编写高效PHP代码>>
    http协议传输二进制数据以及对输入流(php://input)和http请求的理解
    一个非常简单的RPC服务
    php://input 打开的数据流只能读取一次,即读取一次之后读取的值为空
    soap的简单实现(PHP)
    使用PHP的curl扩展实现跨域post请求,以及file_get_contents()百度短网址例子
    jquery选取iframe
    算法之棋盘覆盖
    词法分析之实验报告
    简单的词法分析小程序
  • 原文地址:https://www.cnblogs.com/GoodGoodWorkDayDayUp/p/1877655.html
Copyright © 2011-2022 走看看