Hallo,
da ich ja zwar C++-DLLs importieren kann um deren Funktionen zu nutzen, nicht aber die Header mit den Typdefinitionen bin ich dabei C++ Strukturen in C# umzusetzen.
Nun mein Problem... ARRAYS.
Eindimensionale Arrays habe ich ja schon folgendermaßen umgesetzt:
Kann da mal jemand der das evtl schon öfter gemacht hat schauen, ob das so passt?
Und kann ich den String irgendwie auf 4 Elemente begrenzen?
Was mein akutes Problem ist das folgende:
Wie marshall ich das? Irgendwie blicke ich durch die ganzen Anleitungen nicht durch.
Evtl so?
Ist das so doch schon richtig, oder habe ich es wirklich nicht verstanden?
Vielen Dank für Eure Hilfe
Dirk
da ich ja zwar C++-DLLs importieren kann um deren Funktionen zu nutzen, nicht aber die Header mit den Typdefinitionen bin ich dabei C++ Strukturen in C# umzusetzen.
Nun mein Problem... ARRAYS.
Eindimensionale Arrays habe ich ja schon folgendermaßen umgesetzt:
Code:
SHORT nFondsFin[4];
zu
[MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VT_I2)]
public short[] name;
name = new short[4];
DOUBLE name[4];
zu
[MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VT_R8)]
public double[] name;
name = new double[4];
und
CHAR name[4];
zu
MarshalAs(UnmanagedType.ByValTStr, SizeConst = 4)]
public string name;
Kann da mal jemand der das evtl schon öfter gemacht hat schauen, ob das so passt?
Und kann ich den String irgendwie auf 4 Elemente begrenzen?
Was mein akutes Problem ist das folgende:
Code:
DOUBLE name[7][10];
Wie marshall ich das? Irgendwie blicke ich durch die ganzen Anleitungen nicht durch.
Evtl so?
Code:
[MarshalAs(UnmanagedType.LPArray, SizeConst=70)]
public double[] name;
name = new double[7][10];
Ist das so doch schon richtig, oder habe ich es wirklich nicht verstanden?
Vielen Dank für Eure Hilfe
Dirk