• 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函数中参数传出[out]到底是怎么回事

com函数中参数传出[out]到底是怎么回事

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

佚名通过本文主要向大家介绍了out.lihero.com:6000,outlink.chinaz.com,www.33out.com,www.out55.com,com函数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: com函数中参数传出[out]到底是怎么回事
描述:

com idispatch接口下定义并实现一带[out]传出的函数,感觉跟带in没什么区别呀.
如 定义:HRESULT Test([in]unsigned short * str1,[out]unsigned short *str2);
   实现如:
           str2=str3;//设str3 为指向一个返回到调用函数后仍不释放内存的指针
   调用时如:unsigned short *instr1=(unsigned short *)"",*instr2;
             XXX->Test(instr1,instr2);
     但返回到调用函数后的instr2仍指向一个空处,并没有把str2传出给instr2;
这样的话所谓传入传出有什么用?
    还有那[out,retval],如在str2向使用这个的话:
          调用改为:instr2=xxx->Test(instr1);
          它又会报Test函数不只一个参数,非得让你使用两个参数.这样的话所谓的返回不知道有所意义,
    初学者 忘大家指教


解决方案1:

如果用VS.NET开发选择Project右击选择propertis
在Linker选项的command line中加上comsupp.lib

解决方案2:

str2=str3 咔咔,你这是什么意思
要传出结果需要是 *str2 = xxxxx; 咔咔
楼上的,这是在idl中, in , out 的属性会影响到 proxy/stub 咔咔
我去kb去啦

解决方案3:

[out,retval],如在str2向使用这个的话:
          调用改为:instr2=xxx->Test(instr1)
不可能出错
给你看看我的代码:
Private Sub CGEChart1_BSelected(ByVal LCount As Long, ByVal NCount As Long)
   Dim str1 As String
   If LCount > 0 Then
       Dim i As Long
       For i = 0 To LCount - 1 Step 1
          str1 = str1 + CGEChart1.GetCurrentBSelectedL(i)
       Next
   End If
End Sub


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

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

  • com函数中参数传出[out]到底是怎么回事

相关文章

  • 2017-06-04 请问上那里下载侯俊杰的《ActiveX控制组件彻底研究》电子版?
  • 2017-06-04 给点建议:-----关于结构体的定义
  • 2017-06-05 如何获得线程状态?
  • 2017-06-04 请教大家。。我用Atuvue做为VC60Activex控件加上后不能打开文件。
  • 2017-06-05 Atl工程的DllMain能否什么都不做?
  • 2017-06-05 rpc编程,"接口分为implicit和explicit两种",是什么意思?
  • 2017-06-04 在DLL中如何调用ocx控件?
  • 2017-06-04 我想在COM接口处传递自定义的结构参数,好象接口处的参数是固定的那几个VARIANT,不知应该怎样实现
  • 2017-06-05 为什么ActiveX的事件只有在OnDraw中去触发,页面才能接收到
  • 2017-06-05 如何找出内存中所有在运行的后台进程?

文章分类

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

最近更新的内容

    • 大家帮帮忙呀!帮我找个东西!先谢了!
    • 怎么改变其他进程的EDIT窗口的内容?(50分马上给。)
    • 我想用ATL开发关于右击鼠标菜单的COM组件请问设计步骤该如何?100
    • UnhandledExceptionMFC42DDLLACCESSVIOLATION怎么解决?
    • 求教:两个程序之间的通信问题
    • 该函数运行为何总是出错?(100分)
    • Activex控件之间DragDrop传递自定义数据
    • 高分请教一个简单的DLL问题,在线等待!
    • 菜鸟问几个简单问题,关于char和LPTSTR类型互相转换的问题?
    • 脚本调用OCX的问题!

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

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