Ver Mensaje Individual
  #1
Antiguo 5 de noviembre de 2015, 11:15
Kuk
Administrador
Última Actividad 03.10.2026 00:00
Posts Posts: 2.500
Likes enviados Enviados: 1038
Likes recibidos Recibidos: 1207
Sonrisa Obtener la dirección de una función PowerCOBOL
0 Inactivo Inactivo

Amigos, no encuentro ningún modo de obtener la dirección de una función para pasarla por un POINTER.

En los manuales de PowerCOBOL 3, viene PROCEDURE-POINTER como palabra reservada, pero no compila con ello. Pero ese problema lo tengo resuelto simplemente definiendo el puntero como POINTER y pasándolo a las funciones de WinAPI funciona perfectamente (en realidad viene a ser el mismo DWORD de 4 bytes).

En PowerCOBOL 9 existe un modo de hacerlo con la sintaxis adaptada de MicroFocus:

Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  01  WS-PTR           PROCEDURE-POINTER.
  3.  PROCEDURE DIVISION.
  4.  
  5.      SET WS-PTR TO ENTRY "MiPrograma"

Pero esta sintaxis no funciona en PowerCOBOL 3...
Para poder usar la API GetProcAddress la función debe estar en una DLL y definida como exportada (dllexport). Pero esto no me sirve, al menos, incluso si es posible, me complicaría muchísimo las cosas.

¿Alguna idea de cómo podría obtener esa dirección de una función codificada en la "PROCEDURE" de un SHEET? Es que con todas las posibilidades que tiene el Power 3, debe haber un modo de hacerlo.



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