La Web del Programador: Comunidad de Programadores
 
    Pregunta:  36084 - INTEGRACION DE CODIGO C ESTANDAR EN VISUALC++
Autor:  Juan Manuel García Sánchez
Dispongo de un conjunto de modulos C estandar que intento utilizar en VisualC++ 6 para realizar una serie de tareas. El problema surge cuando intento importar los modulos en varias clases. El compilador me informa que los objetos que importo en una de las clases ya estan definidos en la otra clase. Si embargo, si importo los modulos en sólo una clase, compila perfectamente.
Me gustaria saber como puedo importar un modulo C en varias clases de forma simultanea.
Gracias.

  Respuesta:  Ernesto p r
No se exactamente que quieras decir con "modulos".
Cualquiera que sea tu definicion, creo que puedes solucionarla de alguna de estas formas:
a) Si el módulo es un pedazo de código que contiene definciones de clase o funciones prootipo, utiliza las directivas de preprocesamiento. En el módulo usa algo asi como
#ifndef modulox
#define modulox
... tu codigo...
#endif

luego puedes incluirlo con relativa tranquilidad.

b) secciona el código en una seccion declarativa (funciones prototipo y deficniones de clases) en archivos .h. Utiliza el truco de la opcion a e incluyelo con tranquilidad, luego dile al compilador que quieres que el .cpp con el código de definicion de funciones ( o el de instrumentacion de clase) sea parte del proyecto. Con esto cada segmento de código que use tus funciones o clases conocerán lo único que necesitan saber ( el prototipo), y el compilador enlazara una sola vez el código.

c) Siguiendo de manera generica lo expuesto antes, asegurate que las funciones conozcan el prototipo de lo que necesitan saber, e indica explicitamente que se trata de funciones externas( usa extern, por supuesto). Asegurate que el enlazado solo jala una sola vez el código que defiine las funciones.

Espero que esto te sirva. Si necesitas alguna orientacion escribeme.
Saludos cordiales