Ver Mensaje Individual
  #34
Antiguo 27 de abril de 2017, 15:40
Kuk
Administrador
Última Actividad 03.10.2026 00:00
Posts Posts: 2.500
Likes enviados Enviados: 1038
Likes recibidos Recibidos: 1207

fastpho, el uso de la DLL no es complicada. Debes añadir el archivo *.LIB a tu proyecto en PowerCOBOL. Luego copiar la DLL a la carpeta debug/release de tu proyecto PowerCOBOL donde te deja los EXE y DLL de tu proyecto.

En cuanto a la sintaxis. Te lo voy a explicar con ejemplos del PDF que has colgado.
Por ejemplo, dice que en la DLL hay una función (que por cierto no está disponible en la OCX) que es:

Código CPP:
  1. void setComPort( int Port )

Código:
This method configures the port number to be used. It is not available in the COM (.ocx) library.

Variable  Type      Value      Description 
Port      int       Numeric    0 – USB
                               1 – COM1
                               2 – COM2
                               x - COMx
Void - quiere decir "nada", o sea que la función no devuelve resultado.

Para llamar esta función debes hacer:

Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  01  sPort         PIC S9(9) COMP-5.
  3.  
  4.  PROCEDURE DIVISION.
  5.    
  6.     MOVE 0 TO sPort *> activamos USB
  7.    
  8.     CALL "setComPort" WITH STDCALL USING BY VALUE sPort

Este es un ejemplo básico. Ahora para llamar la función que llamábamos antes:

Código CPP:
  1. void AddDataField( char *in_buffer, int in_buffer_length )

Código:
This method adds a new field (binary data) for the next command.

Variable          Type      Value      Description 
in_buffer         char      Binary     Max size buffer is 8192 
in_buffer_length  int       Numeric    Max length is 8192
Para llamar esta función debes hacer:
Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  01  InBuffer      PIC X(250).
  3.  01  BufferLen     PIC S9(9) COMP-5.
  4.  
  5.  PROCEDURE DIVISION.
  6.    
  7.     *> Prueba con cada una de estas combinaciones
  8.     MOVE X"08" & X"02" TO InBuffer
  9.     MOVE 2             TO BufferLen
  10.    
  11.     MOVE X"08" & X"02" & X"00" TO InBuffer
  12.     MOVE 2                     TO BufferLen
  13.    
  14.     MOVE X"08" & X"02" & X"00" TO InBuffer
  15.     MOVE 3                     TO BufferLen
  16.    
  17.     *> La propia llamada a la Función:
  18.     CALL "AddDataField" WITH STDCALL USING BY REFERENCE InBuffer
  19.                                            BY VALUE BufferLen

Siguiendo estos ejemplos puedes invocar cualquier función en la DLL.



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