Laden und Übergeben von JScript-Arrays von / an C # (nicht C) COM-Komponente
Ich habe mir Tutorials zu jscript-Arrays angesehen, sie aber noch nicht gesehen. Ich sah etwas Ähnliches gefragt, aber mit Win32-Code, nicht .NET.
Wie übergebe ich Arrays zwischen JScript und einer C # COM-Komponente?
In meiner C # -COM sind beispielsweise zwei Eigenschaften definiert, die Zeichenfolgen- und Ganzzahl-Arrays wie folgt zurückgeben:
string[] HeaderLines { get; set; }
int[] ImagePixels { get; set; }
In meiner test.js Datei:
...
var T = new ActiveXObject("Imager.Reader");
...
var headerLines = T.HeaderLines;
WScript.StdOut.WriteLine("First HeaderLine:" + headerLines[0]);
var pixels = T.ImagePixels;
WScript.StdOut.WriteLine("First Pixel: " + pixels[0]);
In diesem Fehler wird headerLines [0] ausgegeben: C: \ temp \ test.js (12, 1) Microsoft JScript-Laufzeitfehler: 'headerLines.0' ist null oder kein Objekt
Wenn ich die headerLines in test.js entferne, erhalte ich diesen Fehler (im Wesentlichen derselbe, aber für das Integer-Array): C: \ temp \ test.js (12, 1) Microsoft JScript-Laufzeitfehler: 'pixels.0' ist null oder kein Objekt
Ich kann Ergebnisse von Nicht-Array-Eigenschaften erhalten sowie Werte an andere Methoden übergeben, aber nicht mit Arrays. Ich muss auch Zeichenfolgen- und Ganzzahl-Arrays an eine Methode übergeben, die in meiner C # COM-Komponente definiert ist als:
bool Write(string filename, string[] headerLines, int[] pix, int width, int height);
Ich verwende Visual Studio Express 2012 für Desktop zum Erstellen des COM-Elements in C #. Wenn weitere Informationen benötigt werden, lassen Sie es mich einfach wissen.