Hallo,
ich will ein (oder je ein) struct in C# mit einigen Daten zu lesen und zu schreiben.
EIn Prozes (SPS) hat definierte String Größen, somit weiß ich die Größe theoretisch.
Wie kann ich nun auf der C# Seite eine fixe Größe definieren (Referenzenieren ist ja nicht erlaubt bzw geht nicht, da ja keine fixe Größe ermittelbar ist).
Schau mal unter Default Marshalling nach.
Da solltest Du alles finden - insbesondere ob der String terminiert oder nicht terminiert ist, solltest Du noch prüfen.
Das Proble ist etwas komplexer.
Ich bekomme von der Gegenseite Ascii Character in den shared Memory, auf der C# Seite sind diese CHarackter jedoch 2 byte. Dadurch ist der Zugriff schon mal nicht konsistent.
Wie kann ich die fixed CHAR als Ascii definieren und anschließend in einen String umwandeln für die weitere C# bearbeitung?
ANSI hat aber auch 2 Bytes. wenn ich die Größe ermittle, erhalte ich die zweifache Zeichenanzahl als Wert zurück.
Laut Doku sollte Ansi nur Zeichen mit der Länge von einem Byte haben. 🤔
danke für die Info. Werds jetzt in Byte ienlesen, nur hab ich das Problem das ichmit einem Fixed byte[] keine möglichkiet finde, diesen in einen String zu konvertieren.