Ver Mensaje Individual
  #2
Antiguo 9 de febrero de 2017, 17:33
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Recato53, lo que puedes hacer es pasar un puntero de una variable en tu DLL que será recuperado por el EXE en la CMD-LINE.

Es decir, en tu DLL defines una variable y llamas al EXE:
Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  01  EXT-INDICADOR          PIC X(2).
  3.  
  4.  PROCEDURE DIVISION.
  5.      
  6.      INVOKE POW-SELF "ExecuteSync" USING EXT-INDICADOR
  7.      
  8.      IF  EXT-INDICADOR = "SI"
  9.          INVOKE POW-SELF "DisplayMessage"
  10.           USING "¡Hay conexión!" 64
  11.          
  12.      ELSE
  13.          INVOKE POW-SELF "DisplayMessage"
  14.           USING "¡NO hay conexión!" 48
  15.      END-IF

En tu EXE que comprueba la conexión, en la WORKING Global defines:

Código COBOL:
  1.  01  GLB-CMD IS GLOBAL         PIC X(260).
  2.  01  FILLER REDEFINES GLB-CMD
  3.      05  PTR-VAR IS GLOBAL     POINTER.
  4.      05  FILLER                PIC X(256).

Y en el evento "Opened" haces lo siguiente:

Código COBOL:
  1.      MOVE "CommandLine" OF POW-SELF TO GLB-CMD

En el evento "Click" de tu botón que llama a la rutina de comprobación de la conexión, añades la LINKAGE SECTION y mapeas la variable de retorno. Ejemplo:

Código COBOL:
  1.      ENVIRONMENT     DIVISION.
  2.      DATA            DIVISION.
  3.      WORKING-STORAGE SECTION.
  4.      01  FUNC  PIC X(20).
  5.      01  NUM1  PIC S9(9) COMP-5.
  6.      01  NUM2  PIC S9(9) COMP-5.
  7.      01  NUM3  PIC S9(9) COMP-5.
  8.      01  RESP  PIC S9(9) COMP-5.
  9.      
  10.      LINKAGE SECTION.
  11.      01  EXT-VARIABLE     PIC X(2).  *>  <== VARIABLE COMPARTIDA
  12.      PROCEDURE       DIVISION.
  13.              
  14.          MOVE "mluser" TO FUNC
  15.          
  16.          CALL FUNC WITH STDCALL USING BY VALUE NUM1
  17.                                       BY VALUE NUM2
  18.                                       BY VALUE NUM3
  19.                                       RETURNING RESP
  20.                                      
  21.          SET ADDRESS OF EXT-VARIABLE TO PTR-VAR
  22.          
  23.          IF  RESP = ZEROS
  24.              MOVE "NO" TO EXT-VARIABLE
  25.              
  26.          ELSE
  27.              MOVE "SI" TO EXT-VARIABLE
  28.          END-IF



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita