Autor Beitrag
Fetze
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 65
Erhaltene Danke: 1



BeitragVerfasst: Sa 17.11.07 20:34 
Heyho,

zur Benutzung einer Dll-Funktion, die als Datenformat nur IntPtr akzeptiert, muss ich ein Byte Array irgendwie in einen IntPtr quetschen, wenn möglich ohne meinen eigenen Code unsafe zu machen. Ich habe durch Internetrecherchen die Funktion
ausblenden C#-Quelltext
1:
void System.Runtime.InteropServices.Marshal.StructureToPtr(object structure, IntPtr ptr, bool fDeleteOld)					

gefunden. Diese scheint genau das zu können, aber wenn ich folgenen Code zu kompilieren versuche:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
        IntPtr tempData  = System.Runtime.InteropServices.Marshal.AllocHGlobal(4 * oglWidth * oglHeight);
        try
        {
          byte[] tempByteData  = new byte[4 * oglWidth * oglHeight];
          System.Runtime.InteropServices.Marshal.StructureToPtr(tempByteData, tempData, true);
        }
        finally
        {
          System.Runtime.InteropServices.Marshal.FreeHGlobal(tempData);
        }


erhalte ich eine Fehlermaldung (ArgumentException mit structure-Parameter) die da lautet: "Die angegebene Struktur muss Layoutinformationen enthalten.".

Was kann ich tun und wo liegt der Fehler? Gibt es andere Möglichkeiten die vielleicht besser geeignet sind, ein byte[] durch einen IntPtr auszudrücken?


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Sa 17.11.2007 um 19:37
Moderiert von user profile iconChristian S.: Topic aus Sonstiges (.NET) verschoben am So 25.05.2008 um 16:39
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Sa 17.11.07 20:55 
Seit wann ist ein Array eine Struktur :zwinker: . Schau dir noch die Marshal-Klasse etwas genauer an, Copy sieht doch sehr vielversprechend aus.
Fetze Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 65
Erhaltene Danke: 1



BeitragVerfasst: Sa 17.11.07 21:01 
Oh man. Danke. Musste ein Brett vorm Kopf gehabt haben %)