Die Methodensignatur, die ich haben möchte, ist
int RequestData(ref myStruct[] data1)
Der Kunde, der mit .net-DLLs möglicherweise nicht sehr vertraut ist, kann keine Möglichkeit finden, dies aufzurufen...also habe ich versucht, es mit dem herauszufinden labview Community Edition.
Schritt 1 bestand darin, einfach zu sehen, ob ich eine „ref“-Struktur an Labview zurückgeben könnte ... und hier ist mein DLL-Code dafür und die Labview-Skizze ...
Code: Select all
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace clusterPassing
{
public struct myStruct
{
public string myStr;
public int myInt;
}
public class myClass
{
public int myMethod( ref myStruct data1)
{
data1.myInt = 21;
data1.myStr = "test string";
return data1.myInt;
}
}
}

Wenn ich im DLL-Code die Eingabe in myStruct data1 ändere (ohne die Referenz), kann ich sie aufrufen, aber sobald ich sie zur Referenz mache (wie im Code gezeigt) Ich erhalte eine Fehlermeldung - 1316
Frage: Gibt es eine Möglichkeit, dass Labview eine Struktur austauschen und den Wert von der .net-Methode zurückerhalten kann? Ich habe mich in Labview über Cluster informiert, bin mir aber noch nicht sicher, ob das möglich ist...