IN-Typ wird in Pointerformat umgewandelt

gingele

Level-1
Beiträge
227
Reaktionspunkte
42
Zuviel Werbung?
-> 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:
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
 
Hallo

Vielleicht hast du den Operandenvorrang auf Absolut eingestellt.

Im Projektbaum:
Ordner Bausteine -> Rechte Maustaste -> Objekteigenschaften -> Register Operandenvorrang

Gruss SW-Mech
 
Am Operrandenvorrang liegt es nicht das war das erste was ich getestet habe als es nicht funktioniert hat.
 
Super, Danke mit einem DB Namen geht es wunderbar, man muss allerdings auf beim Operandenvorrgang auf symbolisch sein, habs spaßeshalber noch mit absolut probiert da gings wieder nicht.
 
Zurück
Oben