![]() |
Compratir variable con un EXE de PowerCOBOL
Cita:
Según me indicas puedo programar RETURN-CODE y recogerlo con RETURNING, me puedes hacer llegar un ejemplo, no consigo que esto me funciones. Muchas gracias. Un saludo. |
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:
En tu EXE que comprueba la conexión, en la WORKING Global defines: Código COBOL:
Y en el evento "Opened" haces lo siguiente: Código COBOL:
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 Archivos Adjunto(s)
Buenas tardes KUK.
Muchisimas gracias por tu interés. He probado la programación que me indicas y no consigo que funcione. Creo que me he explicado mal. Te cuento otra vez mi problema. Tengo una DLL que llama a un EXE. El programa EXE tiene que devolver un valor y desde la DLL recogerlo. La programación de la DLL Código COBOL:
La programación del programa EXE Código COBOL:
Cuando ejecuto el programa da un error. |
Recato53, pruebalo así:
Código COBOL:
|
Buenos días.
Sique sin funcionar estos programas. Donde se produce el ERROR es en código del programa.EXE, hay algo que no esta correctamente programado y no encuentro lo que es. Muchas gracias Un saludo. |
Recato53, ahora que lo pienso es normal... :tonto: Estamos compartiendo memoria en 2 procesos diferentes, y esto no es posible. Para ello hay que reservar de la memoria compartida (shared memory) que es independiente y se controla por el SO.
Si sigues queriendo hacerlo así puedo mirar cómo se hace, habrá que llamar unas API-s de Windows. Pero en realidad, me sigue pareciendo lo más fácil
|
Me gustaría que se pudiera hacer como inicialmente me comentaste.
Ahora lo tengo resuelto con un archivo Temp. En el programa EXE creo un archivo Temp con los valores que me interesan. En la DLL abro el archivo Temp y leo los valores. Es una solución un poco rudimentaria, pero funciona. Un saludo. |
1 Archivos Adjunto(s)
Recato53, aquí tienes lo que necesitas, lo he comprobado y funciona. En realidad es un ejemplo de cómo compartir memoria entre 2 procesos.
En el programa llamante hacemos: Código COBOL:
En el programa llamado hacemos: Código COBOL:
Incluyo el proyecto por si a caso ;) |
El archivo .rar, se descarga con una extensión que no se puede descomprimir.
|
Recato53, a mi me funciona... De todos modos, simplemente renombralo en INTERNET.rar a mano.
|
| La franja horaria es GMT +2. Ahora son las 17:16. |
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.