0

![]() |
![]() |
Acabo de llegar... |
Amigos.
No se como insertar un programa C en POWER COBOL 9.
Saludos
![]() |
![]() |
Administrador |
@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
¿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.
![]() |
![]() |
Acabo de llegar... |
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
![]() |
![]() |
Administrador |
@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í.
¿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.
![]() |
![]() |
Acabo de llegar... |
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.
![]() |
![]() |
Administrador |
@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.
¿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.
![]() |
![]() |
Acabo de llegar... |
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.
![]() |
![]() |
Administrador |
@FabioYeyo, a mi tampoco me funciona con tu OBJ...
Oye, nunca he visto esta sintaxis:CPP Código:
/**********************************************************************/ /* pos(s,c) donne la premiere occurence du caractere c */ /* dans la chaine de caracteres s */ /**********************************************************************/ UCHAR pos(s,c) UCHAR s[]; UCHAR c; { UCHAR i; i=0; while ((s[i] != c) && (s[i] != '\0') && (i<255)) { i++; } return(i); }
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:CPP Código:
/**********************************************************************/ /* pos(s,c) donne la premiere occurence du caractere c */ /* dans la chaine de caracteres s */ /**********************************************************************/ UCHAR pos(UCHAR s[], UCHAR c) { UCHAR i; i=0; while ((s[i] != c) && (s[i] != '\0') && (i<255)) { i++; } return(i); }
¿Con qué compilador lo has compilado (y obtenido el OBJ)?
¿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.
![]() |
![]() |
Acabo de llegar... |
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.
![]() |
![]() |
Administrador |
@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:The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense.![]()
![]()
![]()
Edsger W. Dijkstra - Wikiquote
¿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