【发布时间】:2011-10-07 01:08:03
【问题描述】:
我正在使用 CodeDom 引用一个 COM dll 文件。 dll文件中的函数参数如下:
Public Function Foo(fooString As String, fooByte() As Byte)
End Function
当这个 dll 文件被 Visual Studio 直接引用(不使用 CodeDom)时,我调用这个函数如下 - 并且解决方案构建没有问题:
Byte[] b = File.ReadAllBytes("Test.exe");
DllName.DllClass dll_obj_reference = new DllName.DllClass();
dll_obj_reference.Foo("data", b);
注意:
虽然我正在向函数发送一个字节数组(根据 VB6 的要求),但 Visual Studio 实际上要求输入类型System.Array。无论出于何种原因,解决方案仍然可以正常运行,我可以毫无问题地调用函数Foo。
但是,通过 CodeDom 完成这一切,我就没有那么幸运了。我将 interop.DllName 添加为对生成项目的引用,并以相同的方式调用。不过,这一次,CodeDom 吐出一个错误,说它无法将类型 byte[] 转换为类型 ref System.Array。
所以,我的问题 - 最后: 如何将上面显示的字节数组转换为 System.Array 类型?我在网上找不到任何文章。
感谢您的帮助!
【问题讨论】:
-
@BenVoigt 已更新为正确的格式。