【问题标题】:Return byte array from C# to VBScript via COM interop通过 COM 互操作将字节数组从 C# 返回到 VBScript
【发布时间】:2010-11-02 00:09:59
【问题描述】:

我有一个 C# 方法,它返回一个我希望能够从 VBScript 访问的字节数组。或多或少:

namespace ClassLibrary7
{
    [ClassInterface(ClassInterfaceType.AutoDual)]
    [Guid("63A77D29-DB8C-4733-91B6-3CC9C2D1340E")]
    [ComVisible(true)]
    public class Class1
    {
        public void Create(
            out byte[] BinaryData
            )
        {
            // do some work and return BinaryData
            BinaryData = new byte[] { 1, 2, 3, 4 };
        }
     }
 }

和 vbscript 的样子:

dim o
dim b

set o = wscript.CreateObject("ClassLibrary7.Class1")

o.Create b

MsgBox ubound(b)

我迷路了。 Google 不想合作……希望这里有人能提供帮助!

罗伯

【问题讨论】:

    标签: c# interop vbscript com-interop


    【解决方案1】:

    这应该会有所帮助:

    COM 互操作第 2 部分:C# 服务器教程
    http://msdn.microsoft.com/en-us/library/aa645738(VS.71).aspx

    还有这个:

    使用 .NET 创建 COM 服务器。 C#
    http://codebetter.com/blogs/peter.van.ooijen/archive/2005/08/02/130157.aspx

    【讨论】:

    • 问题是要将字节数组返回给 SBCcript,您正在处理 VBScript 的方式...这是通过变体引用。事实证明,使用互操作为数据类型指定“对象”可以解决问题。例如。 public void Create(out object BinaryData);
    猜你喜欢
    • 2010-11-05
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 2015-06-29
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    相关资源
    最近更新 更多