Laden...

Pointer auf Referenz in C#

Letzter Beitrag vor 19 Jahren 3 Posts 1.741 Views
Pointer auf Referenz in C#

Hi Leute, habe da ein kleines Problemchen, bei dem ihr mir vielleicht helfen könnt.

Ich benutze aus einer C# Applikation eine C++ dll.
Die Funktion die ich dort aufrufe benötigt als Übergabeparameter einen Zeiger auf eine Referenz eines Integer Arrays.

Die C++ Funktion sieht ungefähr so aus:

EXTERN_C BOOL STDAPICALLTYPE MyFunction(int& count, int*& indices);

Jetzt die Frage, wie ich sowas in C# umsetze. Ich möchte ein Integer Array anlegen und irgendwie dieses Pointer-Referenz-Ding übergeben. Die dll füllt mir dieses mit werten. Dabei besitzt die Variable count hinterher die Größe des Int-Arrays.

Der C# DLL-Aufruf:


[DllImport("MyLib.dll")]
private static extern bool MyFunction(out Int32 count, out int* indices);

Die Implementierung


int count = 0;
int[] test = null;
fixed(int *ptrI = test)
MyFunction(out count, out ptrI);

Also die Variable count hat dann hinterher jedenfalls die Größe des Arrays, aber wie funktioniert das mit dem Int-array??

Ups, hab ich wohl aus Versehen ins falsche Forum gepostet. Bitte verschieben

Hat sich erledigt. Funktioniert mit einem ganz normalen Pointer.