Ola Kuk,
@Kuk, gracias por tu respuesta.
Si la variable wstatus esta definida en working.
Ahí va el código completo:
Código COBOL:
ENVIRONMENT DIVISION.
DATA DIVISION.
working-Storage section.
01 sPort PIC S9(9) COMP-5.
01 sBaudio PIC S9(9) COMP-5.
01 gState PIC S9(9) COMP-5.
01 FUNC-EPSON-LIB Pic x(40).
01 version pic x(250).
01 mensa.
03 wcomando pic x(30).
03 wrespue pic x(15).
03 wstatus pic 99999999+.
PROCEDURE DIVISION.
move POW-OFF to POW-ENABLE of ESTADO.
call CLEARLIST OF p-comandos.
***** GetAPIVersion
MOVE "GetAPIVersion" TO FUNC-EPSON-LIB.
CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE VERSION.
move spaces to mensa.
move "Ver Version" to wcomando.
move version to wrespue.
move PROGRAM-STATUS to wstatus.
call ADDSTRING of p-comandos using mensa.
***** setComPort
MOVE spaces TO FUNC-EPSON-LIB.
MOVE "setComPort" TO FUNC-EPSON-LIB.
move 0 to sPort.
CALL FUNC-EPSON-LIB WITH STDCALL USING BY VALUE sPort.
move spaces to mensa.
move "Seteo puerto" to wcomando.
move sPort to wrespue.
move PROGRAM-STATUS to wstatus.
call ADDSTRING of p-comandos using mensa.
***** setBaudRate
MOVE spaces TO FUNC-EPSON-LIB.
MOVE "setBaudRate" TO FUNC-EPSON-LIB.
move 9600 TO sBaudio *> set baudios
CALL FUNC-EPSON-LIB WITH STDCALL USING BY VALUE sBaudio.
move spaces to mensa.
move "Seteo velocidad puerto" to wcomando.
move sBaudio to wrespue.
move PROGRAM-STATUS to wstatus.
call ADDSTRING of p-comandos using mensa.
***** getPrinterState
call ADDSTRING of p-comandos using "getPrinterStatus".
MOVE "getPrinterStatus" TO FUNC-EPSON-LIB.
move spaces to mensa.
CALL FUNC-EPSON-LIB WITH STDCALL RETURNING PROGRAM-STATUS.
move PROGRAM-STATUS to wstatus.
***** WITH STDCALL USING BY REFERENCE VERSION.
***** RETURNING CODIGO-CmImpresor.
move "Ver Status Impresora" to wcomando.
call ADDSTRING of p-comandos using mensa.
call DISPLAYMESSAGE of ComFis using "Fin Status".
move POW-ON to POW-ENABLE of ESTADO.
Este código da error al compilar, si hago la llamada a la función de esta forma: "CALL FUNC-EPSON-LIB.", no da error, pero en PROGRAM-STATUS no devuelve el estado verdadero del controlador.