| |
2-56 PL-/icSprache, die Spezifikation, v1.0 Abbildet September 2002 2 Beispiel PTR DCL GRID_OBJ; Gegenstandbezugs* des Rasterfeldes,/ halten DCL 1 GRID_HEIGHT_ARGS, /* Info über Höhenarg* des Rasterfeldes,/ RESULTAT 3 REGELTE BIN(31); PTR INIT(SYSNULL() DCL NO_EXCEPTION); DCL OPERATION_NAME CHAR(256); ... /* AUSSAGEN FÜR DAS ZURÜCKHOLEN IOR DES RASTERFELDES LIESSEN AUS */ ... /* VERSUCHEN SIE, DIE HÖHE VON RASTERFELD*/ ZU LESEN OPERATION_NAME = ' _ get_height '; ANRUF PODEXEC(GRID_OBJ, operation_name, ADDR(GRID_HEIGHT_ARGS), no_exception); WENN CHECK_ERRORS('PODEXEC ') ^ = COMPLETION_STATUS_YES DANN ZURÜCKGEHEN; GESETZTER ZEILENSPRUNG LIST('HEIGHT IST ', grid_height_args.result); 2,16,16 PODGET Zusammenfassung PODGET(PTR)-;/* INOUT: addr(opArgBuffer)) */ // erhält INNEN und INOUT-Werte Beschreibung Jede Betriebsimplementierung muß mit einem Anruf zu PODGET anfangen und Ende mit einem Anruf zu PODPUT . Wenn der Betrieb keine Parameter nimmt und keinen Rückholwert hat, PODGET und PODPUT noch benannt werden muß das Überschreiten in einen blinden Datenbereich. Das genplidienstprogramm erzeugt blindes CHAR(1) Datenelement zu diesem Zweck. PODGET kopiert die ankommenden Argumentwerte des Betriebes in das komplette PL/I Betriebsparameterpuffer, der geliefert wird. Dieser Puffer wird automatisch vorbei erzeugt das genplidienstprogramm. Nur INNEN und INOUT Werte in dieser Struktur werden durch dieses bevölkert Anruf. Merken Sie, das die Adresse des Arguments ist, das zu PODGET geführt wird . Beispiel Betrachten Sie das folgende IDL schließen Sie foo an { langer Stab (in kurzem n, aus kurzem m); } Der komplette PL-/ibetriebs-Parameterpuffer schaut Gleiches: DCL 1 FOO_BAR_ARGS, 3 N ÖRTLICH FESTGELEGTES BIN(15), |  |
|
| |
|
|