![]() |
Estimados adjunto las lineas finales de la llamada
Mi problema era que definía mal las variables NUMX ya que no conocía/entendía/etc la declaración BINARY-SHORT / BINARY-LONG Código COBOL:
El Archivo COBOL85.CBR Código COBOL:
Tal cual lo describio KUK en el inicio del post Saludos y Gracias Por Estar Alli !!!! |
1 Archivos Adjunto(s)
Buenos días.
Quiero comprobar si existe conexión a internet. He probado todo las opciones que he encontrado en el Foro, algo estoy programando mal. Intento usar COBOL85.CBR y desde el programa de PowerCobol llamo a la función. Pero responde con u mensaje de ERROR. Cita:
|
Amigo Recato53, el fichero COBOL85.CBR lo tienes que poner en el mismo directorio que el ejecutable (en la carpeta mi_projecto\DEBUG), si no lo haces no va a funcionar. El ejecutable cuando arranca, por medio del Run-Time se busca el fichero COBOL85.CBR en el mismo directorio, y la lista de ENTRY-s que hay en realidad se cargan vía "LoadLibrary" y "GetProcAddress" pero se hace por el Run-Time y no por nosotros.
|
Cita:
|
Recato53, también tienes mal escrito el nombre de la función InternetCheckConnectionA en el fichero COBOL85.CBR. Tienes InternetcheckConnectionA en vez de InternetCheckConnectionA, en caso de rutinas C y WinAPI las minúsculas/mayúsculas importan. ;)
|
Muchas gracias KUK.
Por fin funciona la rutina para testear si hay conexión a internet. Si llamo a este programa (.exe) desde un programa en PowerCobol(.DLL), como recupero el valor en el programa de PowerCobol. |
Recato53, ¿por qué lo quieres hacer como un EXE? Haz una simple rutina COBOL y a llamas donde la necesites.
Pero si quieres hacerlo como dices, y no quieres que sea un DLL sino un EXE... :piensa: Puedes intentar hacer un MOVE al RETURN-CODE en el EXE, y en el programa llamante recibes dicho valor en el campo RETURNING. Pruébalo y nos cuentas. |
Cita:
La estructura de carpetas que empleo en mis aplicaciones es la siguiente: \Aplicación \Aplicación\Datos \Aplicación\Programas (aquí están todas las 'dll' , 'exe' y archivos necesarios para ejecutar la aplicación). El programa que ejecuta la aplicación esta en \Aplicación\Aplicacion.exe Desde una 'dll' llamo a la rutina que quiero comprobar si hay conexión a Internet. Como el archivo COBOL85.CBR tiene que estar en la misma carpeta del programa que llama a esta rutina, necesito recuperar el valor en la DLL que resulta de llamar a la rutina 'exe'. 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, a ver, no me estoy enterando de cual es el problema con el COBOL85.CBR. Puede haber varios por aplicación, pero sólo 1 por directorio. Es decir, puedes tener uno en \Aplicación\ y otro \Aplicación\Programas\.
Así que:
En cuanto lo que dije sobre el RC, me he equivocado, no va a ser posible, porque estamos en mundo GUI y hay subrutinas que se ejecutan después de salir del código COBOL. Pero tengo una idea y te la voy a explicar en un tema separado ;) |
Kuk, Estoy desarrollando una rutina para pasar un archivo TXT, de ANSI a UTF-8 y viceversa cuando la tenga acabada y documentada, donde la tengo que cargar en el FORO.
Un saludo. |
| La franja horaria es GMT +2. Ahora son las 16:33. |
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.