none
Zeiger auf eine ref struct? RRS feed

  • Frage

  • Wie kann ich einen Zeiger auf eine verwaltete Struktur erzeugen, um dann beginnend von Struktur-Adresse 0 byteweise die Strukturdaten auslesen zu können? Ist es überhaupt möglich, eine solche Struktur byteweise auszulesen, auch wenn die Member der Struktur kein Byteformat, sondern verschiedene Formate (wie UInt32, Int16,Char,..) haben?

    Meine Struktur sieht beispielsweise so aus:

    private: ref struct StrData
     {
     System::UInt16 data_a;  
     System::UInt16 data_b;   
     System::Byte data_c;   
     System::Byte data_d;    
     System::Int32 data_e;
     System::Int32 data_f;
     static array<UCHAR> ^data_g = gcnew array<UCHAR>(12);
     static array<ULONG> ^data_h = gcnew array<ULONG>(12);
     } strtest;

    Wie kann ich diese Struktur byteweise durch Adressverweise umspeichern?

    Hintergrund ist der, dass ich alle "Rohdaten" einer Struktur umspeichern möchte in ein Byte-Array, um diese byteweise über eine Schnittstelle versenden zu können.

    Donnerstag, 9. Dezember 2010 12:41

Antworten

  • Bau einfach eine struct auf ohne .NET Komponenten und Typen... genau das ist doch der Vorteil in C++/CLI...
    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Donnerstag, 9. Dezember 2010 12:59
    Moderator

Alle Antworten

  • Bau einfach eine struct auf ohne .NET Komponenten und Typen... genau das ist doch der Vorteil in C++/CLI...
    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Donnerstag, 9. Dezember 2010 12:59
    Moderator
  • Ok, hab nun wirklich eine normale unmanaged struct genommen. Das Projekt compilierte damit zwar ohne Fehler, aber der Debugger zeigte falsche Werte für die unmanaged Variablen an. Damit der Debugger richtig funktioniert und keine Grütze anzeigt, muss man in den Projekteinstellungen die CLR-Unterstützung von "/clr:pure" auf "/clr" umstellen!
    Dienstag, 14. Dezember 2010 06:58