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
fixed CHar[] in ASCII definieren und als string ausgeben
Gerri3d
myCSharp.de - Member



Dabei seit:
Beiträge: 57

Themenstarter:

fixed CHar[] in ASCII definieren und als string ausgeben

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
Spook
myCSharp.de - Member



Dabei seit:
Beiträge: 241
Herkunft: Esslingen a.N.

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Gerri3d
myCSharp.de - Member



Dabei seit:
Beiträge: 57

Themenstarter:

beantworten | zitieren | melden

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..
private Nachricht | Beiträge des Benutzers
weismat
myCSharp.de - Member



Dabei seit:
Beiträge: 872
Herkunft: Frankfurt am Main

beantworten | zitieren | melden

Marshal.Copy oder Marshal.PtrToStringAnsi können Dir da helfen.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.500

beantworten | zitieren | melden

Genau das gleiche Thema wie Shared Memory mit Strings in Struct und daher geschlossen.
private Nachricht | Beiträge des Benutzers