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:
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:
WORKING-STORAGE SECTION.
01 sPort PIC S9(9) COMP-5.
PROCEDURE DIVISION.
MOVE 0 TO sPort *> activamos USB
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:
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:
WORKING-STORAGE SECTION.
01 InBuffer PIC X(250).
01 BufferLen PIC S9(9) COMP-5.
PROCEDURE DIVISION.
*> Prueba con cada una de estas combinaciones
MOVE X"08" & X"02" TO InBuffer
MOVE 2 TO BufferLen
MOVE X"08" & X"02" & X"00" TO InBuffer
MOVE 2 TO BufferLen
MOVE X"08" & X"02" & X"00" TO InBuffer
MOVE 3 TO BufferLen
*> La propia llamada a la Función:
CALL "AddDataField" WITH STDCALL USING BY REFERENCE InBuffer
BY VALUE BufferLen
Siguiendo estos ejemplos puedes invocar cualquier función en la DLL.