Hat sich erledigt. Funktioniert mit einem ganz normalen Pointer.
Ich finde solche XPStyle Explorer Bars eigentlich nicht schlecht:
Ups, hab ich wohl aus Versehen ins falsche Forum gepostet. Bitte verschieben
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??
Wenn du es in einer .Net Sprache geschrieben hast, sollte natürlich das .Net Framework auf seinem Rechner installiert sein.
Außerdem, wenn du es im Managed Code programmiert hast kann es sein, daß du noch nach der DirectX installation die Erweiterung für Managed Code installieren mußt.
Dazu gibt es im SDK von DirectX eine Datei mdxredist.msi.