• 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 > COM参数如何返回字符串值

COM参数如何返回字符串值

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

佚名通过本文主要向大家介绍了参数必须包含字符串,字符串作为函数参数,字符串参数,字符串作为参数,字符串做参数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: COM参数如何返回字符串值
描述:

typedef struct
{
uint32 uiStructureSize ; // must be set to sizeof(tsAT_IDENTIFY_RESULTS_A) by application
uint16 uwMatchedNumber ;
char szMatchedUserId[24] ;
} tsAT_IDENTIFY_RESULTS_A ;
COM参数如何返回字符串值,
函数代码
STDMETHODIMP CATSCCtl::Indentify(BSTR *UserID)
{
char* ID;
ID=sIdentifyResults.szMatchedUserId;
//sIdentifyResults定义为上面的结构
*UserID = SysAllocString((BSTR)ID);
}
在VB中引用该COM,调用函数Indentify
dim strUserID AS String
Indentify  strUserID
Msgbox strUserID
总是显示乱码,单步运行调试我已经看到ID的值是正确的,如果我将其返回直接这样赋值 *UserID = SysAllocString(L"1234");在VB中就能正常显示1234,
请问我该怎么定义ID或者如果处理返回的值


解决方案1:

修改下面这句看看:
*UserID = SysAllocString((BSTR)ID);
-〉
*UserID = SysAllocString((BSTR)CComBSTR(ID));

解决方案2:

“*UserID = L "1234"就可以了吧”
俺的回答是不可以地.
楼上几个的做法外,还可以
*UserID = SysAllocString((BSTR)ID);
->
USES_CONVERSION;
*UserID = SysAllocString(A2W(ID));
还可以这样
CComBSTR bs(ID);
*UserID=bs.Deatach();


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

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

  • COM参数如何返回字符串值
  • COM中,怎样通过参数返回一个字符串啊?

相关文章

  • 2017-06-05 当前非活动程序如何获得键盘消息??????????
  • 2017-06-04 有个windows桌面窗口的问题请教下
  • 2017-06-04 请问com怎么返回一个数组?一定要可以跨语言调用的!!
  • 2017-06-05 关于CreateThread函数在dll中的问题。
  • 2017-06-04 奇怪的IE中ActiveX无法创建现象
  • 2017-06-05 枚举线程窗口的问题
  • 2017-06-04 BHO监视网页事件,但是点击一个超链接,却得到多次OnClick事件,请高手相救
  • 2017-06-05 怎样有效控制多个线程同时修改一个变量?
  • 2017-06-04 IDispatch可以做参数吗?该怎么用啊?
  • 2017-06-05 除了WM_GETTXT外还有什么消息可以取得窗口的内容?

文章分类

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

最近更新的内容

    • 刚开始接触线程,程序却怎么也调不通,求助~~
    • MFC操作Excel文件的问题!
    • 怪问题求救:VB做的COMVC调用,解释模式正常,编译成dll就出问题
    • 一个创建进程的简单问题
    • 关于线程通信问题
    • 一个很奇怪的问题,哪位大侠有兴趣进来看看吧,是关于多线程和SOCKET的
    • 如何使用WebBrowser实现打印?
    • 相同条件下建进程,是优先级设的高的用的时间少,还是优先级低的用的时间少?
    • 如何仅获取消息,但不截取?
    • Delaunay三维三角网构建

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

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