• 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编程中,通过Invoke调用其中一个方法,在传递两个BSTR参数时出现莫名其妙的错误,请求帮助。

COM编程中,通过Invoke调用其中一个方法,在传递两个BSTR参数时出现莫名其妙的错误,请求帮助。

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

佚名通过本文主要向大家介绍了 COM编程中,通过Invoke调用其中一个方法,在传递两个BSTR参数时出现莫名其妙的错误,请求帮助。等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: COM编程中,通过Invoke调用其中一个方法,在传递两个BSTR参数时出现莫名其妙的错误,请求帮助。
描述:

具体代码如下:
IDispatch* pIDispatch = NULL;
DISPID dFileConvert;
VARIANTARG vArgs[1];
DISPPARAMS Params;
BSTR bstrSrc, bstrDest;
bstrSrc = ::SysAllocString(_T("D:\\Text.txt"));
bstrDest = ::SysAllocString(_T("D:\\Text.jpg"));
VariantInit(vArgs);
vArgs[1].vt = VT_BSTR;
vArgs[1].bstrVal = bstrSrc;
vArgs[0].vt = VT_BSTR;
vArgs[0].bstrVal = bstrDest;
Params.cArgs = 2;
Params.rgvarg = vArgs;
Params.cNamedArgs = 0;
Params.rgdispidNamedArgs = NULL;
pIDispatch->Invoke(dFileConvert, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD, &Params, NULL, NULL, NULL);
通过上面的调用时,参数数组vArgs中的vArgs[1]总是不能指向需要的bstrSrc,而是为0,这是什么原因?
请求高手看看,我调试了好久了,不胜感激。


解决方案1:

你声明的是VARIANTARG vArgs[1]; //表示vArgs是只包含了一个VARANTARG元素的数组 
而使用的时候:
vArgs[1].vt = VT_BSTR; //超出了vArgs的范围
vArgs[1].bstrVal = bstrSrc; 
vArgs[0].vt = VT_BSTR; 
vArgs[0].bstrVal = bstrDest; 


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

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

  • com编程中_bstr_t数据类型去掉“空格”问题
  • COM编程中,通过Invoke调用其中一个方法,在传递两个BSTR参数时出现莫名其妙的错误,请求帮助。

相关文章

  • 2017-06-05 loadlibrary函数调用出错,在线等!
  • 2017-06-05 MFC请求http文件相关
  • 2017-06-05 问个ActiveX的session问题,在线等
  • 2017-06-04 困扰我多年的问题
  • 2017-06-05 怎么在MFCDLL里面做弹出无模式对话框啊!
  • 2017-06-04 请问高手对于一个无界面接口编程的选择,是DLL,还是COM,还是ActiveX?而且通用性要强,非常急!!请指教!!!
  • 2017-06-05 COM组件调用:返回错误是:ClassFactory无法供应请求的类别
  • 2017-06-04 vc如何获取word中图片数据
  • 2017-06-05 菜鸟提问:什么是组件,跟DLL什么区别啊?
  • 2017-06-05 CreateThread之后,线程并没有执行,为何?

文章分类

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

最近更新的内容

    • Thethread0xF84hasexitedwithcode20x2
    • 关于dll注册,在线等
    • 在MFC下使用控件接口类CPictureHolder怎么用?使用其CreateFromBitmap函数实现从bitmap图像生成对象时老执行出错!
    • 插入html页面的ocx控件如何透明的显示位图?
    • 串口的各种不正常希望大侠们能解释解释啊
    • 如何在ADO中使用IStream
    • hook注入DLL后
    • MSChart控件
    • 关于在VC中内嵌word保存问题
    • unix下进程怎样取得自己的文件名和路径,用什么函数

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

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