홈 · 개발 참고자료

개발 참고자료

[파워빌더] Return an ERRORLEVEL to a BAT file from a PB app

작성자
관리자
작성일
2016-10-16
조회
8350
분류
파워빌더
First method:
[External FUNCTION declaration]
SUBROUTINE ExitProcess(ulong uExitCode) LIBRARY "kernel32.dll"

[Powerscript]
ExitProcess(50) // terminate the current application
// with ERRORLEVEL 50

[BAT file example]
echo off
start /w myapp.exe
if errorlevel 100 goto 100
if errorlevel 50 goto 50
echo exit code is 0
goto done
:100
echo exit code is 100
goto done
:50
echo exit code is 50
:done
echo done.

NOTE: Errorlevel values must range between 0 and 255. Testing this API from inside the Powerbuilder environment (in development mode) will terminate PB itself.One nice way to implement this is to have a global variable gul_rc with a default value of 0. This variable will be modified to contain a different value if needed. When executing the close event, a call is made to the ExitProcess subroutine passing the current value of gul_rc. Before it may be safer to call the Garbage collector to avoid some memory leaks because ExitProcess() is a rude way to terminate an application. You trigger the Garbage collector by calling the function GarbageCollect().


Second method:


[close event of the application]
Message.LongParm = 2 // return 2 as ERRORLEVEL