Hallo,
Nachdem im OA4-Handbuch nichts dazu vermerkt ist, möchte ich an dieser Stelle auf ein kleines Problem in OA im Zusammenhang mit der EXECUTE-Funktion hinweisen. Übergibt man einen String mit mehr als 126 Zeichen Länge an die Execute-Funktion, wie z.B. in folgendem Beispiel, so erhält man einen NTVDM-Crash (meist mit Invalid Opcode):
Code:
EXECUTE "echo This is a very very long environment string that will exceed the DOS environment string length and therefore crash NTVDM because it exceeds the 126 char limit"
Die Ursache hierfür liegt in diesem Fall an einer Limitierung des
PSP von DOS, es gehen einfach nicht mehr als 126 Zeichen!
OA prüft das allerdings scheinbar nicht ab, bevor es den Aufruf ans DOS weitergibt (vermutlich via
INT 2E) und daher schepperts dann.
Normalerweise patche ich Fehler ja, aber in diesem Fall ist es kein Fehler und es ist ausreichend, wenn man als Benutzer über die Limitierung bescheid weiß und entsprechend richtig programmiert. Möchte man mehr Daten an ein Programm übergeben, so kann man z.B. die Daten in einer Datei schreiben und dann eine externe Batch-Datei aufrufen, welche die Eingangsdaten verarbeitet.
Lg.