0

![]() |
![]() |
Administrador |
Amigos, he descubierto esto para el PowerCOBOL v3 y funciona en la version 9 tambien!!!
Cuando queremos llamar una DLL y no tenemos la LIB, simplemente hay que:
- Crear un fichero de texto y llamarlo COBOL85.CBR
- Dentro escribir el nombre del Form desde el que se va a llamar y .ENTRY
- Nombres de las funciones = los nombres de las DLL-s correspondientes
Por ejemplo:
CODE Código:
[MainForm.Entry] FtpConnect=FTP.dll FtpDisconnect=FTP.dll LogIn=Protocol.dll InvalidateRect=User32.dll
En el código debemos llamar estas funciones en dinámico, es decir por variable:
COBOL Código:
ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 FUNC PIC X(20). 01 hWnd PIC S9(9) COMP-5. PROCEDURE DIVISION. MOVE "hwnd" OF POW-SELF TO hWnd MOVE "InvalidateRect" TO FUNC CALL FUNC WITH STDCALL USING BY VALUE hWnd BY VALUE 0 BY VALUE 1
¡¡¡Listo!!!![]()
¿Te han ayudado? NO TE OLVIDES de darle al botón
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
- Haciendo clic en el icono
al lado de su nick
- Haciendo clic en el botón
en el editor y escribiendo su nick.
![]() |
![]() |
Guardián del Foro |
Genial Kuk, voy a probarlo y te cuento.
Resulta que yo puse en el buscador del foro el texto "DLL" y no me trajo ningún tema,
supongo que estaré buscando mal.
![]() |
![]() |
Guardián del Foro |
Estimado Kuk, no doy "pieconbola" la dll se llama MLUSER32.DLL y debo hacer un call a: "mluser" que tiene 5 parámetros numéricos.
Si no te molesta podrías mandarme el código y el cobol85.cbr, ya que no tengo experiencia en este tipo de llamadas.
Saludos
![]() |
![]() |
Administrador |
@Hrmcobol, en tu COBOL85.CBR, al final del fichero debe añadir (cambiando MainForm por el nombre del Form que va a llamar la DLL):CODE Código:
[MainForm.Entry] mluser=MLUSER32.DLL
En el Form que llama la DLL pones:COBOL Código:
ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 FUNC PIC X(20). 01 NUM1 PIC S9(9) COMP-5. 01 NUM2 PIC S9(9) COMP-5. 01 NUM3 PIC S9(9) COMP-5. 01 NUM4 PIC S9(9) COMP-5. PROCEDURE DIVISION. MOVE "mluser" TO FUNC CALL FUNC WITH STDCALL USING BY VALUE NUM1 BY VALUE NUM2 BY VALUE NUM3 BY VALUE NUM4
Debes poner MLUSER32.DLL en el mismo directorio que tu programa PowerCOBOL.
Si no te sale aún, dime más concretamente qué es exactamente lo que no logras hacer![]()
¿Te han ayudado? NO TE OLVIDES de darle al botón
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
- Haciendo clic en el icono
al lado de su nick
- Haciendo clic en el botón
en el editor y escribiendo su nick.
![]() |
![]() |
Guardián del Foro |
Amigo Kuk, te adjunto la DLL La LIB, quiero hacer un call a "mluser", te adjunto un VB por si tu puedes abriro, este vb funciona correctamente, podras mirlo un poco
Saludos
![]() |
![]() |
Administrador |
@Hrmcobol, me pillas más liado que nunca amigo... Voy a mirar si puedo mirarlo la semana que viene, antes no creo que pueda...
¿Te han ayudado? NO TE OLVIDES de darle al botón
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
- Haciendo clic en el icono
al lado de su nick
- Haciendo clic en el botón
en el editor y escribiendo su nick.
![]() |
![]() |
Guardián del Foro |
Estimado kuk, resolví a medias el tema de la DLL, ya puedo acceder a la misma, el problema era el de siempre, uno mira y no ve, tenia mal escrito los parámetros.
Gracias como siempre.
Los Mantengo al tanto a medida que resuelva todo
![]() |
![]() |
Guardián del Foro |
PROBLEMA RESUELTO !! !! !!!
GRACIAS KUK POR EL POST !!!
![]() |
![]() |
Administrador |
¿Te han ayudado? NO TE OLVIDES de darle al botón
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
- Haciendo clic en el icono
al lado de su nick
- Haciendo clic en el botón
en el editor y escribiendo su nick.
Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)
Marcadores