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?
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
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..
Genau das gleiche Thema wie Shared Memory mit Strings in Struct und daher geschlossen.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code