DllImport Zeiger als paramweter
-
Hallo! Kann mir einer helfen bei DllImport?
Ich Möchte eine Funktion Importieren, die ein Array(Zeiger) als parameter erwartet:
void glGetDoublev(int pname,double *params )
versuche ich so zu importieren:
[DllImport("OpenGL32.dll", EntryPoint = "glGetDoublev")] public static extern void GetDoublev(uint pname, ref IntPtr ptr);
Nun möchte ich das die Funktion das Array modelview füllt:
double[] modelview = new double[16]; GetDoublev(GL_MODELVIEW_MATRIX,ref modelview );
Entweder importiere ich die Funktion falsch, oder ich rufe sie falsch auf, oder beides.
Wie kann ich modelview füllen?
-
Hier ein Bsp.
extern "C" { __declspec(dllexport) void fill(double* buffer, int length) { for (int i = 0; i < length; ++i) { buffer[i] = i; } } }
using System; using System.Runtime.InteropServices; namespace App { class Program { [DllImport(@"..\..\..\Debug\Lib.dll")] static extern void fill(double[] buffer, int length); static void Main(string[] args) { double[] buffer = new double[16]; fill(buffer, buffer.Length); } } }
-
Dankeschön!