博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
How to pass in/out return VB Byte array from a COM Component written in C#
阅读量:6629 次
发布时间:2019-06-25

本文共 809 字,大约阅读时间需要 2 分钟。

看到dudu分享的贴代码方法立刻就来试验一下,效果的确很好可惜我机器上只有Office XP,所以没有颜色了。

至于这段snippet嘛,使用来示范如何在VB6中调用一个.NET写的COM组件,并传入、传出以及返回一个ByteArray的。
其实写出来的代码很简单的,但当刚开始确实十分麻烦,因为我找不到.NET中对应的Attribute(主要是InAttribute, OutAttribute ,对应关键字in, out,ref和IDL定义间的关系。
我现在想想[return:MarshalAs()]这个属性可能也不需要加的。你可以试一试告诉我结果tongue_smile.gif
using System;<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

using System.Runtime.InteropServices;

 

namespace expose_to_COM

{

     public interface IInfo

     {

 

         [

              return: MarshalAs(UnmanagedType.SafeArray)

         ]

         byte[] GetBytes(ref byte[] bytes);

     }

 

     [ClassInterface(ClassInterfaceType.None)]

     public class Class1: IInfo

     {

         public Class1()

         {

         }

 

         public byte[] GetBytes(ref byte[] bytes)

         {

              byte[] _bytes = new byte[]{0x30,0x31,0x32,0x00};

              return _bytes;

         }

     }

}

 

 

转载于:https://www.cnblogs.com/jonnyyu/archive/2004/02/19/1361.html

你可能感兴趣的文章
Spring Security权限框架理论与简单Case
查看>>
Invalid icc profile: duplicate sequence numbers
查看>>
day1
查看>>
开源中国的 IT 公司开源软件整理计划介绍
查看>>
DDoS deflate - Linux下防御/减轻DDOS***
查看>>
关于outlook2007在WIN7下收取邮件很慢的解决办法
查看>>
Android第三十七天
查看>>
VMM2012应用指南之13- 自助服务门户网站的使用
查看>>
GraphQL入门
查看>>
IBM Java多线程 - 1. 线程基础
查看>>
3月7日高项作业(信息化基础和信息系统服务管理)
查看>>
【C++探索之旅】第一部分第六课:控制流程,随心所至
查看>>
我的友情链接
查看>>
memcached的基本操作和简单类定义
查看>>
How to delete all the animations in a presentation
查看>>
Java基础学习总结(8)——super关键字
查看>>
SSM整合,个人总结和step
查看>>
嵌入式Linux ARM汇编(三)——ARM汇编指令(四)
查看>>
嵌入式 Linux 系统移植——BSP分析
查看>>
Linux-基础命令测试(一)
查看>>