Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Herramienta] instalador de power cobol 9 jjcol Fujitsu COBOL 1 26 de septiembre de 2021 19:47
[Sintaxis] como insertar una imagen jpg en una impresion mhnico RM/COBOL 1 1 de marzo de 2021 17:32
[Compilador] Power Cobol como serviço Joseg PowerCOBOL (ActiveX, v4 - v11) 3 6 de febrero de 2019 19:36
[Componente] Power Cobol ActiveX using with VB6,C++, etc. hbetancur PowerCOBOL (ActiveX, v4 - v11) 1 5 de julio de 2018 17:42
[Sintaxis] Ejecutar programa externo como Administrador Fito PowerCOBOL (ActiveX, v4 - v11) 5 7 de junio de 2018 20:55

Respuesta

  #1
Antiguo 17 de abril de 2017, 22:59
FabioYeyo
Forero Junior
Última Actividad 03.11.2025 14:24
Posts Posts: 14
Likes enviados Enviados: 2
Likes recibidos Recibidos: 0
Consola Como insertar un programa C en POWER COBOL 9
0 Inactivo Inactivo

Amigos.

No se como insertar un programa C en POWER COBOL 9.

Saludos
FabioYeyo is offline   Responder Con Cita
  #2
Antiguo 17 de abril de 2017, 23:58
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

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



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #3
Antiguo 19 de abril de 2017, 17:24
FabioYeyo
Forero Junior
Última Actividad 03.11.2025 14:24
Posts Posts: 14
Likes enviados Enviados: 2
Likes recibidos Recibidos: 0

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 is offline   Responder Con Cita
  #4
Antiguo 19 de abril de 2017, 17:46
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

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í.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #5
Antiguo 19 de abril de 2017, 18:15
FabioYeyo
Forero Junior
Última Actividad 03.11.2025 14:24
Posts Posts: 14
Likes enviados Enviados: 2
Likes recibidos Recibidos: 0

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.
FabioYeyo is offline   Responder Con Cita
  #6
Antiguo 19 de abril de 2017, 18:23
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

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.

Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  Incremental_LINK.png
Vistas: 193
Tamaño:  22,1 KB  



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #7
Antiguo 19 de abril de 2017, 18:29
FabioYeyo
Forero Junior
Última Actividad 03.11.2025 14:24
Posts Posts: 14
Likes enviados Enviados: 2
Likes recibidos Recibidos: 0

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.
Archivos Adjuntos
Tipo de Archivo: rar DES.rar (9,0 KB)Descargas: 184
FabioYeyo is offline   Responder Con Cita
  #8
Antiguo 19 de abril de 2017, 18:53
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

FabioYeyo, a mi tampoco me funciona con tu OBJ...

Oye, nunca he visto esta sintaxis:

Código CPP:
  1. /**********************************************************************/
  2. /*       pos(s,c) donne la premiere occurence du caractere c          */
  3. /*                dans la chaine de caracteres s                      */
  4. /**********************************************************************/
  5.  
  6. UCHAR pos(s,c)
  7. UCHAR s[];
  8. UCHAR c;
  9. {
  10.   UCHAR i;
  11.  
  12.   i=0;
  13.   while ((s[i] != c) && (s[i] != '\0') && (i<255))
  14.   {
  15.     i++;
  16.   }
  17.   return(i);
  18. }

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:
  1. /**********************************************************************/
  2. /*       pos(s,c) donne la premiere occurence du caractere c          */
  3. /*                dans la chaine de caracteres s                      */
  4. /**********************************************************************/
  5.  
  6. UCHAR pos(UCHAR s[], UCHAR c)
  7. {
  8.   UCHAR i;
  9.  
  10.   i=0;
  11.   while ((s[i] != c) && (s[i] != '\0') && (i<255))
  12.   {
  13.     i++;
  14.   }
  15.   return(i);
  16. }

¿Con qué compilador lo has compilado (y obtenido el OBJ)?



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #9
Antiguo 19 de abril de 2017, 21:21
FabioYeyo
Forero Junior
Última Actividad 03.11.2025 14:24
Posts Posts: 14
Likes enviados Enviados: 2
Likes recibidos Recibidos: 0

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 is offline   Responder Con Cita
  #10
Antiguo 19 de abril de 2017, 21:25
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

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:
The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense.


Edsger W. Dijkstra - Wikiquote



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 16:12.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.