PDA

View Full Version : Callp im free-RPG



Michael Rude
17-04-03, 09:53
Hallo zusammen.

Im free-RPG-Format gibt es als call-befehl ja nur den callp. Ich möchte damit keine Prozedur oder einen Prototyp aufrufen, sondern einfach ein externes Programm.
Auf "callp pgmname(parameter)" reagiert der Compiler ziemlich bösartig mit "Prototyp nicht definiert".
Muss ich also einen Prototyp definieren oder gibt es eine andere Form des externen Programmaufrufes?

Grüße Michael

B.Hauser
17-04-03, 10:15
Hallo Michael,

Eigentlich hast Du Dir die Antwort schon selber gegeben.
Es gibt nur die Möglichkeit über CALLP zu gehen, oder den CALL im Standard-Format zu schreiben.
CALLP heisst nichts anderes als Call with Prototype.
Mit CallP kann jedes Programm aufgerufen werden.
Du benötigst nur den Prototyp.

Dein aufgerufenes Programm kannst Du unverändert lassen.
Was allerdings nicht unbedingt empfehlenswert ist, zwar im rufenden Programm eine Parameter-Prüfung zur Compile-Zeit erfolgt, in dem aufgerufenen Programm kann erst zur Laufzeit festgestellt werden, ob die Parameter richtig übergeben wurden.

Birgitta

Frank Hildebrandt
17-04-03, 15:16
Hallo,

hier ein kleines Beispiel für den Aufruf
eines externen Programms über einen prototyped call.

Zunächst muss der Prototyp des externes Programms definiert werden. Der Prototyp beinhaltet alle Parameter, die an das externe Programm übergeben werden sollen.

* Prozedurenprototyp für Programm 'CMO001PG'
dCMO001PG PR ExtPgm('CMO001PG')
d 10A 1. Parameter
d 10S 0 2. Parameter

Anschließend kann man das Programm aufrufen.

c CallP CMO001PG(PRM1 : PRM2)