2009-06-11 6 views
1

Ich habe C# -Methode, die ein Byte-Array zurückgibt, ich möchte auf VBScript zugreifen können. oder mehr weniger:Rückgabe Byte-Array von C# zu VBScript über COM-Interop

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 }; 
     } 
    } 
} 

und die Vbscript aussehen:

dim o 
dim b 

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

o.Create b 

MsgBox ubound(b) 

ich bin verloren. Google möchte nicht kooperieren ... und ich hoffe, dass jemand hier helfen kann!

Rob

Antwort

0

Dies sollte helfen:

COM Interop Teil 2: C# Server Tutorial
http://msdn.microsoft.com/en-us/library/aa645738(VS.71).aspx

und diese:

einen COM-Server mit .NET erstellen. C#
http://codebetter.com/blogs/peter.van.ooijen/archive/2005/08/02/130157.aspx

+0

Das Problem war, dass, um ein Byte-Array zu SBCcript zurückzugeben, Sie sich mit VBScript befassen ... die durch Variantenreferenz ist. Bei interop stellt sich heraus, dass die Angabe von "object" für den Datentyp das Problem löst. Z.B. public void Create (aus Objekt BinaryData); – user53794

+0

Das macht Sinn. –