• 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接口中有指针,net中改如何传给参数给com接口????

com接口中有指针,net中改如何传给参数给com接口????

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

佚名通过本文主要向大家介绍了com接口,com接口是什么,com接口图片,主板com接口,com接口有什么用等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: com接口中有指针,net中改如何传给参数给com接口????
描述:

如题:
com中定义,
long MyArrayTest(VARIANT* vararr);
。net中,封装后,
public virtual int MyArrayTest(ref object vararr);
调用代码,
           string[] strarr = new string[3]{"aaa", "bbb", "ccc"};
            System.Object strobject = strarr;
            axMfcComArray1.MyArrayTest(ref strobject);
----
编译也通过了, 但是,倒运行得时候, 就有错误了, 抛出了一个异常,
未处理的“System.Runtime.InteropServices.COMException”类型的异常出现在 mscorlib.dll 中。
其他信息: 类型不匹配。 (异常来自 HRESULT:0x80020005 (DISP_E_TYPEMISMATCH))
请问各位高手, 该怎么传这个参数呢????


解决方案1:

如果我没猜错的话VARIANT是一个结构体。那么你要在C#中定义一个一样的结构体,才能将数据传送过去!

解决方案2:

Visual Basic .NET 更新了通用数据类型,旨在提供与公共语言运行库的互操作性。 
Visual Basic 6.0
在 Visual Basic 6.0 中,Variant 用作通用数据类型。这意味着可在类型为 Variant 变量中存储任意类型的数据。 
Visual Basic .NET
在 Visual Basic .NET 中,Object 是通用数据类型。类型为 Object 的变量可存放任意类型的数据。不支持 Variant 类型,其所有功能由 Object 提供。 
Variant 在 Visual Basic .NET 中仍是保留字,即使它无语法用途。这有助于避免与其以前的含义相混淆。 
VarType 函数返回提供对象变量数据类型分类的 VariantType 枚举的成员。您还可以使用 System 命名空间中的类来获得 Object 实例的数值数据类型信息,如以下代码所示:
Dim SomeObj As Object 
' ... ... ... ...  SomeObj is assigned some value during processing. 
' ... ... ... ...  Now we want to find out the data type of SomeObj. 
Dim Dtype As Integer      ' To hold numeric data type result. 
Dtype = Type.GetTypeCode(SomeObj.GetType()) 


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

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

  • 急======》COM接口中,其接口函数是否可重载
  • 怎么在同一个com库中一个接口的方法中返回另一个接口分不够另外加分
  • 接口如何在COM类中调用?
  • 关于COM的参数类型问题
  • COM接口问题
  • COM接口问题
  • 请问,COM接口是否可以传递自己定义的结构?
  • com接口参数传递的问题
  • COM接口的问题(有代码)
  • 如何在COM接口中把自定义的类型传递出来使用?

相关文章

  • 2017-06-04 关于windowless,谁能指点一下
  • 2017-06-05 怎样创建一个包含多个dll控件的OCX控件
  • 2017-06-04 有关Msflexgrid的具体操作
  • 2017-06-05 关于ActiveMovie高手进来看看啊
  • 2017-06-04 编译错误,解决马上给分,UP有分无论解决与否,下午5点散分
  • 2017-06-05 请教高手!!!怎么将一个工作线程中用mci播放的midi音乐关闭??
  • 2017-06-05 CSerialPort定时的问题
  • 2017-06-04 如何转换USHORT型到数字到LPCTSTR型字符串?
  • 2017-06-04 在ATL里用为什么不能用COleVariant或WriteBSTR
  • 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
  • 微信公众号

最近更新的内容

    • 各位兄弟请帮忙,我用MFC创建一个Active,但是我不知道怎么加属性和方法,如能帮忙,愿意送500分!
    • 多线程打开文件,时间总为0第一次除外????
    • 和高手探讨一下PE文件下idata段的疑问
    • 各位高人帮帮忙,在程序中调用DLL,怎么能获得该DLL文件所占用的内存大小啊
    • 有没有办法在Windows创建进程前,做一些前置动作
    • 如果能在客户机上的path路径里找到与cab包里同名的文件时,ActiveX控件会自动引用客户机自身的这个文件,怎么办?
    • 多线程问题,请进
    • 100分求标准输入输出的例子
    • 如何调试DLL?
    • 关于ATL做复合控件的问题

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

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