Übergabe einer Referenz **gelöst**
-
Hi Leute,
wenn ich
array <unsigned long> ^rgArray = gcnew array<unsigned long>(0);
mache und diese Array dann an eine Funktion übergebe, die eine Referenz benötigt. Entsteht ein Fehler das ich 0 nicht übergeben kann.
f(rgArray); //f(array <unsigned long> ^rgArray);
Obwohl ich ja eigentlich eine Array der Länge 0 habe, und die Array doch trotzdem da ist?
MfG
-
OK das Problem ist komplizierter
wenn ich die Array so Fülle
for (udwIndex=0; udwIndex<uwNumberOfDevices; udwIndex++) rgArray[udwIndex] = pArray[udwIndex];
geht es.
mache ich es so:
Runtime::InteropServices::Marshal::Copy((IntPtr)pArray,(array<int> ^)rgArray,0,uwNumberOfDevices=0);
bringt der dann beim aufruf der Funktion wenn die Länge 0 ist den Fehler, dass er 0 nicht übergeben kann. Woran ligt das?
MfG
-
es lag an der Kopierfunktion der Pointer auf die Daten (((IntPtr)pArray) darf nicht NULL sein sonst wirft sie eine Exeption.
-
Destiniy schrieb:
es lag an der Kopierfunktion der Pointer auf die Daten (((IntPtr)pArray) darf nicht NULL sein sonst wirft sie eine Exeption.
Nein, wirklich - wundert mich aber...
-
theta schrieb:
Nein, wirklich - wundert mich aber...
Ihr seid alle so Klug, möchte gerne mit zu euch gehören.