Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Marshal.SizeOf mit [MarshalAs()] Strings
markus111
myCSharp.de - Member

Avatar #avatar-3108.png


Dabei seit:
Beiträge: 479
Herkunft: Henstedt-Ulzburg

Themenstarter:

Marshal.SizeOf mit [MarshalAs()] Strings

beantworten | zitieren | melden

Hallo,

Marshal.SizeOf() wirft mir eine ArgumentException mit der Nachricht "Es kann keine sinnvolle Größe oder sinnvoller Offset berechnet werden, da der Typ "dhcp_test.DHCPPacket" nicht als nicht verwaltete Struktur gemarshallt werden kann." wenn ich die Größe meiner Struct bestimmen will.

Die Struct sieht so aus:

    public struct DHCPPacket
    {
        public byte op;
        public byte htype;
        public byte hlen;
        public byte hops;
        public uint xid;
        public ushort secs;
        public ushort flags;
        public uint ciaddr;
        public uint yiaddr;
        public uint siaddr;
        public uint giaddr;
        [MarshalAs(UnmanagedType.AnsiBStr, SizeConst=64)]
        public string sname;
        [MarshalAs(UnmanagedType.AnsiBStr, SizeConst=128)]
        public string file;
        [MarshalAs(UnmanagedType.AnsiBStr, SizeConst=312)]
        public string options;
    }

Gibt es eine Möglichkeit Marshal dazu zu bringen, das es mit die korrekte Größe ausgibt?

mfg.
markus111
private Nachricht | Beiträge des Benutzers
chrismoe
myCSharp.de - Member



Dabei seit:
Beiträge: 52

beantworten | zitieren | melden

Hi, hast du mal versucht ihm explizit das Layout anzugeben?


//edit ansi statt unicode in deinem fall
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] 
 public struct DHCPPacket
    {
        public byte op;
        public byte htype;
        .
        .
        .
    } 

Charset sollte für ihn ziemlich interessant sein! Davon hängt die Größe von sname bzw. file ab...
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von chrismoe am .
private Nachricht | Beiträge des Benutzers