Laden...

fixed CHar[] in ASCII definieren und als string ausgeben

Erstellt von Gerri3d vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.170 Views
Thema geschlossen
G
Gerri3d Themenstarter:in
57 Beiträge seit 2017
vor 7 Jahren
fixed CHar[] in ASCII definieren und als string ausgeben

Hallo, ich greife auf einen Shared Memory zu. Dieser wird von extern mit einem String (Ascii Charackter - 1byte pro Zeichen) beschrieben.

Nun habe ich einen fixed charackter mit
C#:

  [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] 
        unsafe public struct DataExchangeEmailInTmp 
        {             
            public fixed char server[255]; 
        }	

angelegt.
Wie kann ich diesen von ANSI (sind 2 byte) auf ASCII umstellen und dann aber in C' einen String daraus machen?

S
248 Beiträge seit 2008
vor 7 Jahren

Hallo Gerri3d,

wenn die Daten extern ASCII sind, würde ich als Datentyp in deiner Struct byte verwenden anstatt char. Damit kannst du dann auch einfacher mit Hilfe von ASCII Encoder die Bytes in einen String umwandeln.

PS: ANSI ist meines Wissens nach 1 Byte pro Zeichen.

Grüße
spooky

G
Gerri3d Themenstarter:in
57 Beiträge seit 2017
vor 7 Jahren

Hallo, Danke für den Hinweis. Da ich eine fixe array Größe verwnde(fixed) bekomme ich die Meldung

Error CS1503 Argument 1: cannot convert from 'byte*' to 'byte[]'

Daran happerts egal wie ich das Problem lösen will. Fixed in referenz zu wandeln..

W
872 Beiträge seit 2005
vor 7 Jahren

Marshal.Copy oder Marshal.PtrToStringAnsi können Dir da helfen.

16.806 Beiträge seit 2008
vor 7 Jahren

Genau das gleiche Thema wie Shared Memory mit Strings in Struct und daher geschlossen.

Thema geschlossen