![]() |
Como insertar un programa C en POWER COBOL 9
Amigos.
No se como insertar un programa C en POWER COBOL 9. Saludos |
FabioYeyo, no se puede hacer lo que dices porque PowerCOBOL es un compilador de COBOL y no de C. En este caso lo que tienes que haces es compilar tu programa C en un entorno de C (sea Dev C++, Visual C++, C++ Builder o cualquier otro) y linkearlo en una DLL exportando la función que necesitas. Luego desde PowerCOBOL llamar dicha función.
Si no sabes cómo compilar el programa C y crear la DLL correspondiente, haz una pregunta en este sub-foro: C/C++ - COBOL Foro Para llamar tu función C cuando crees la DLL, debes hacerlo de la siguiente manera: [Aporte] CALL de cualquier DLL sin *.LIB ni "LoadLibrary" - COBOL Foro |
Kuk.
Estoy de acuerdo contigo en que POWER COBOL es un compilador de Cobol y no de C lo que pasa es que no me supe explicar bien mi problema es que hice un .obj de el pograma C y cuando inserte el .obj en PowerCobol me da error pense que podia solucionarlo de esta forma. Gracias |
FabioYeyo, en teoría se puede añadir archivos objeto en un proyecto de PowerCOBOL. Haz un pantallazo del error que te da y ponlo aquí.
|
Kuk.
El error que me da es el siguiente. DES.obj : fatal error LNK1123:failure during conversion to COFF: file invalid o corrupt Gracias. ---------- Post añadido : 16:15 ---------- Post anterior : 16:14 ---------- Kuk. El error lo da en el momento fe hacer el link. gracias. |
1 Archivos Adjunto(s)
FabioYeyo, parece ser problema del LINK incremental.
Intenta haciendo click con el botón derecho en el módulo donde incluyes el OBJ (sea EXE o DLL) y en la pestaña LINK le pones la opción del pantallazo que te pongo. |
1 Archivos Adjunto(s)
Kuk.
Sigue dando el mismo error. Gracias. Aqui te envio el programa fuente en C y el obj tengo temor de que algo este mal no soy especialista en lenguaje C Roberto. |
FabioYeyo, a mi tampoco me funciona con tu OBJ...
Oye, nunca he visto esta sintaxis: Código CPP:
O sea, declarando una función con 2 parámetros sin indicar su tipo, y luego justo debajo declarar dichos campos... De hecho, a mi ni me compila sin modificarlo en: Código CPP:
¿Con qué compilador lo has compilado (y obtenido el OBJ)? |
Kuk.
El obj fue compilado con C standard pero en Unix Trust 64 lo que pasa es que yo lo estoy utilizando con Micro Focus Cobol/2 que es una version bastante vieja de Cobol y que solo funciona sobre DOS con esta version de cobol hago el LINK y funciona perfectamente solo que ahora queria mejorar la interface con el ususario utiliazando POWER COBOL 9 pues no sabes la batalla que tengo contra el resto de mis colegas soy el unico que programa en Cobol claro ellos son mucho mas jovenes pero les he demostrado que el POWER COBOL es una buena herramienta de programacion. |
FabioYeyo, en este caso el formato puede diferir, a no ser que la compilación se haya hecho con un compilador cross-platform, pero teniendo en cuenta la antigüedad (y además siendo UNIX y no Linux) estoy seguro que no es el caso. Además, siendo compiladores antiguos, puede que estemos hablando incluso de un objeto de 16 bits.
Lo que te aconsejo en este caso es, sea intentar recompilarlo en un entorno de Windows (haciendo las modificaciones necesarias para que compile) e intentar linkear el nuevo OBJ, sea crear una DLL en Windows exportando la función necesaria y llamarla así. Y es verdad, los jovenes (a los cuales pertenezco yo también aún, pero no es mi caso) consideran a COBOL como algo anticuado, pero no saben nada de él y es por eso, se basan en rumores y frases "célebres" como la de Dijkstra: Cita:
Edsger W. Dijkstra - Wikiquote |
1 Archivos Adjunto(s)
FabioYeyo, toma te he creado la DLL para Windows.
Para poder llamarla desde PowerCOBOL tienes hacer como se dice aquí: [Aporte] CALL de cualquier DLL sin *.LIB ni "LoadLibrary" - COBOL Foro La sintaxis de llamada a esta función será: Código COBOL:
|
| La franja horaria es GMT +2. Ahora son las 16:21. |
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.