gingele
Level-1
- Beiträge
- 227
- Reaktionspunkte
- 42
-> Hier kostenlos registrieren
Hallo Zusammen,
ich versuch ich gerade ein bisschen an den ANY-Pointern und hab gerade durch die Suchfunktion ein geniales Codebeispiel zur ermittlung einer UDT Länge gefunden: http://sps-forum.de/showthread.php?t=24921&highlight=udt+l%E4nge.
Habe jetzt einen FB der einen UDT-Typ in seinen statischen Variablen hinterlegt hat. Dieser UDT-Typ ist auch bei dem Bausteinaufruf die INPUT Variable, die dann im Code als ANYPOINTER deklariert wird.
Es steht also beim Aufruf folgendes:
Die länge des UDT_TYP´s wird nun ermittelt.
Wenn ich jetzt aber den UDT verändere, sprich ich häng noch ein paar Byte dran und aktualisier das ganze wieder, steht plötzlich das Pointerformat an meinem INPUT:
Also quasi eine Pointergröße vor dem veränderten UDT-Wert.
Kann man das umgehen damit die Änderung variabel ist?
Gruß Frank
ich versuch ich gerade ein bisschen an den ANY-Pointern und hab gerade durch die Suchfunktion ein geniales Codebeispiel zur ermittlung einer UDT Länge gefunden: http://sps-forum.de/showthread.php?t=24921&highlight=udt+l%E4nge.
Habe jetzt einen FB der einen UDT-Typ in seinen statischen Variablen hinterlegt hat. Dieser UDT-Typ ist auch bei dem Bausteinaufruf die INPUT Variable, die dann im Code als ANYPOINTER deklariert wird.
Es steht also beim Aufruf folgendes:
Code:
CALL FB100, DB100
INPUT:=DB100.UDT_TYP
Die länge des UDT_TYP´s wird nun ermittelt.
Wenn ich jetzt aber den UDT verändere, sprich ich häng noch ein paar Byte dran und aktualisier das ganze wieder, steht plötzlich das Pointerformat an meinem INPUT:
Code:
CALL FB100, DB100
INPUT:=P#DB100.DBX10.0 8 BYTE
Also quasi eine Pointergröße vor dem veränderten UDT-Wert.
Kann man das umgehen damit die Änderung variabel ist?
Gruß Frank