• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 两个BSTR还有字符串怎么连接成一个LPCTSTR

两个BSTR还有字符串怎么连接成一个LPCTSTR

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了lpctstr bstr,bstr,bstr t,bstr是什么类型,bstr转cstring等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 两个BSTR还有字符串怎么连接成一个LPCTSTR
描述:

两个BSTR还有字符串怎么连接成一个LPCTSTR


解决方案1:

CString 与 BSTR 型转换
CString 型转化成 BSTR 型
当我们使用 ActiveX 控件编程时,经常需要用到将某个值表示成 BSTR 类型.BSTR 是一种记数字符串,Intel平台上的宽字符串(Unicode),并且可以包含嵌入的 NULL 字符。
可以调用 CString 对象的 AllocSysString 方法将 CString 转化成 BSTR:
CString str;
str = .....; // whatever
BSTR bStr = str.AllocSysString();
 
BSTR型转换为CString
如果你在 UNICODE 模式下编译代码,你可以简单地写成:
CString convert(BSTR bStr)
{
    if(bStr == NULL)
        return CString(_T(""));
    CString s(bStr); // in UNICODE mode
    return s;
}
如果是 ANSI 模式
CString convert(BSTR b)
{
    CString s;
    if(b == NULL)
       return s; // empty for NULL BSTR
#ifdef UNICODE
    s = b;
#else
    LPSTR p = s.GetBuffer(SysStringLen(b) + 1); 
    ::WideCharToMultiByte(CP_ACP,            // ANSI Code Page
                          0,                 // no flags
                          b,                 // source widechar string
                          -1,                // assume NUL-terminated
                          p,                 // target buffer
                          SysStringLen(b)+1, // target buffer length
                          NULL,              // use system default char
                          NULL);             // don''t care if default used
    s.ReleaseBuffer();
#endif
    return s;
}
 

解决方案2:

LPCSTR((CString)bstr_1 + (CString)bstr_2);

解决方案3:

BSTR s1, s2;
// ....
USES_CONVERSION;
CString result = OLE2CT(s1);
result += OLE2CT(s2);


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • vc做ACtiveX参数的返回用LPCTSTR,还是BSTR?
  • 关于BSTR和LPCTSTR、charp的相互转化的方法
  • 两个BSTR还有字符串怎么连接成一个LPCTSTR

相关文章

  • 2017-06-04 一个简单的ACTIVEX控件注册的时候遇到的问题
  • 2017-06-04 如何创建象MapX那样的有多个导出类的ActiveX控件
  • 2017-06-04 一个非常紧急的问题!!(菜鸟问,急待回答!!)
  • 2017-06-05 诚聘软件开发工程师(上海)
  • 2017-06-04 在vc单文档里,用create函数创建一个active空间
  • 2017-06-04 关于activex发布注册的问题?
  • 2017-06-04 关于WMV文件进度条问题!!!!!1
  • 2017-06-05 vc代理问题
  • 2017-06-05 MFC图片添加问题求指点喵!
  • 2017-06-04 ocx控件显示之前,想做一个对话框,出现问题,请教

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • (MFC)ActiveX控件中怎样调用另外一个自定义的ActiveX控件中的函数?
    • ODBC访问Excel中的单元格,为什么有些单元格明明有数值,但是用ODBC读去却读出空值来喃?
    • 操作xml时内存不断增加,请看一下是否有内存泄漏
    • 已知文件句柄,如何获得文件名?
    • 钩子的怪问题
    • ATL开发指南里的一个问题
    • 高手快来回答
    • 为何我自己做的ActiveX控件用不了!!!
    • 我用ShellExecute能打开exe还有txt,但是打不开pdf?
    • 多个程序同时调用客户端程序怎么办啊??

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有