Disponible la nueva versión "donationware" 7.3 de OrganiZATOR
Descubre un nuevo concepto en el manejo de la información.
La mejor ayuda para sobrevivir en la moderna jungla de datos la tienes aquí.

Curso C++

[Home]  [Inicio]  [Índice]

Módulos del compilador Borland C++ 5.5

§1  Sinopsis

Como se ha señalado, los "Compiladores" C++ son en realidad conjuntos más o menos extensos de programas y utilidades para la construcción de ejecutables y librerías [1].  Las modernas "suites" de programación incluyen además una potente interfaz gráfica y un montón de utilidades preconstruidas (algunos las llaman herramientas), que adoptan la forma de librerías.

En el caso de C++, por lo general estas utilidades vienen encapsuladas en forma de clases, cuya funcionalidad abarca los aspectos más comúnmente utilizados en la construcción de aplicaciones.  Por supuesto entre estas librerías no pueden faltar las del Estándar C++, el conjunto mínimo necesario para que un compilador pueda recibir tal nombre ( 5).  Por su parte, la interfaz gráfica permite reducir gran parte de las tareas de codificación a operaciones de arrastrar, cortar y pegar "componentes".

En el caso del compilador Borland C++ existen dos versiones (nos referimos a la plataforma Wintel), una de descarga gratuita, el que hemos denominado BC++ ( 7), y un producto comercial, denominado Borland C++Builder, que es una verdadera "suite" de programación que incluye por supuesto todas las utilidades de la versión gratuita.

§2  Componentes de BC++

Para dar una idea general de lo que puede esperarse en este sentido, incluimos aquí una descripción sucinta de los módulos que se componen el entorno BC++ [2].

BCC32.EXE Versión de línea de comando del compilador C++ de 32 bits.
BPR2MAK.EXE Utilidad que convierte un fichero XML al formato MAKE para que pueda ser utilizado con las herramientas de línea de comando.
BRCC32.EXE Es una versión de línea de comando del compilador de recursos de 32 bits.

Este programa acepta como entrada un fichero "script" (.RC) y produce un fichero .RES como resultado.

RLINK32.DLL Esta librería es un enlazador de recursos (resource linker) de 32 bits utilizada por el enlazador ILINK32 .  Se trata de una utilidad que combina un fichero .RES con un .EXE para producir un ejecutable Windows.
BRC32.EXE Versión de línea de comando del compilador de recursos de 32 bits.  Es un programa puente que invoca al compilador de recursos BRCC32 o al enlazador RLINK32 , según la sintaxis de la orden recibida.
CPP32.EXE Es un preprocesador de línea de comando para fuentes C/C++ de 32 bits.
ILINK32.EXE Es un enlazador de línea de comando capaz de combinar objetos (ficheros .OBJ) y librerías estáticas (ficheros .LIB) para producir ejecutables para Windows 32-bit, incluyendo librerías de enlazado dinámico (ficheros de terminación .EXE, .DLL, y .BPL).

Aunque generalmente no es invocado de forma "manual", porque es llamado automáticamente por el compilador, puede ejecutarse directamente desde el "Shell".  Utiliza un fichero de configuración (ILINK32.CFG), un fichero de respuesta ("response file") opcional y modificadores opcionales de línea de comando.

Nota:  Este programa utiliza los recursos de la librería RLINK32.DLL .

IMPDEF.EXE Utilidad para la construcción de aplicaciones que utilizan librerías dinámicas, ya que permite obtener un fichero de definición (.DEF) a partir de una librería dinámica ( 1.4.4b2c).
IMPLIB.EXE Es una utilidad complementaria de la anterior.  También se utiliza en la construcción de aplicaciones que utilizan librerías dinámicas, ya que permite construir una librería de importación a partir de una o varias librerías dinámicas y/o ficheros de definición .DEF ( 1.4.4b2c).
MAKE.EXE Utilidad que permite simplificar el ciclo de compilación y enlazado de proyectos en los que intervienen varios módulos ( 1.4.0a). 
TLIB.EXE Los manuales de Borland nos informan que las propias librerías incluidas en C++Builder han sido construidas con esta herramienta.  Aunque no es una utilidad esencial, resulta muy práctica, y no debe faltar en el banco de trabajo del programador.

Este programa sirve para construir y modificar librerías estáticas, no solo las de creación propia, también las del compilador o de terceras partes.  Entre sus usos está:

Crear una librería .LIB a partir de una serie de módulos .OBJ

Añadir nuevos módulos a una librería ya existente.

Eliminar módulos de una librería existente.

Reemplazar módulos de una librería existente por nuevas versiones.

Extraer módulos de una librería existente

Listar el contenido de una librería nueva o ya existente

Además de lo anterior, TLIB puede crear e incluir en la librería un diccionario extendido, que es de utilidad para mejorar la velocidad de enlazado ( 1.4.4b).

El programa acepta un cierto número de comandos en la orden de inicio, comandos que pueden estar incluidos en un fichero de réplica ("Response file" 1.4.0).  Se trata de un fichero de texto ASCII que puede contener todos o algunos de los comandos de inicio.

TLIBIMP.EXE Acrónimo de "Type Library Import".  Esta utilidad acepta librerías de tipos ( 1.4.4b2d) ya existentes y produce ficheros de interfaz para C++Builder. Está incorporada en el editor de librerías de tipos ("Type Library editor").
TOUCH.EXE Esta utilidad permite cambiar los datos de fecha y hora almacenados por el sistema para uno o varios ficheros.

Es de utilidad cuando se quiere forzar una reconstrucción de algunas librerías o ejecutables en base al cambio de fecha de algún fichero dependiente (ver MAKE.EXE).

TRIGRAPH.EXE Esta utilidad debe ejecutarse antes que el compilador (o que el preprocesador), y tiene por misión convertir los trígrafos ( 3.2.3e) en los caracteres individuales equivalentes.
VCTOBPR.EXE En realidad esta utilidad ha sido incluida por Borland para permitir a sus clientes manejar proyectos software desarrollados con el producto de la competencia, Microsoft Visual C++ 5.0 y 6.0.

Esta herramienta permite traducir los ficheros de proyecto (.DSP) y de banco de trabajo (.DSW) en los correspondientes del producto de Borland, C++Builder.

TDUMP.EXE Se trata de una utilidad que puede analizar y mostrar la estructura de un fichero.

El programa analiza la estructura del fichero y muestra el resultado en función del tipo de fichero de que se trate (su terminación).  Para ello es capaz de reconocer muchos tipos de ficheros, incluyendo .EXE,  .OBJ y  .LIB.  En caso de no reconocer una extensión, produce un volcado hexadecimal del fichero.

Los formatos de salida pueden ser controlados mediante diversas opciones en la orden de inicio, y la información obtenida no solo se refiere al contenido sino también a la propia estructura interna, de forma que es posible ver como está construido e incluso comprobar si esta estructura concuerda con su terminación, con lo que puede servir para verificar la integridad del fichero analizado .

GREEP.EXE El nombre del programa es acrónimo de "Global Regular Expression Print".  Una utilidad que por si sola merece ser incluida en el arsenal de cualquier programador.

Se trata de una potente herramienta de búsqueda de ficheros por contenido (la versión para Windows de una utilidad UNIX del mismo nombre), capaz de buscar un patrón de texto en un conjunto de ficheros.  Es sensible a mayúsculas/minúsculas, y puede producir una lista con las líneas de cada fichero en los que hay concordancia.  Además, el patrón a buscar puede contener caracteres genéricos, con lo que el patrón de búsqueda puede ser muy flexible.

Por ejemplo, suponiendo que queremos buscar que ficheros .CPP contienen los caracteres "register", la orden sería:   grep register *.CPP

FCONVERT.EXE Utilidad que convierte ficheros de texto que utilizan un conjunto de caracteres OEM específico, al formato estándar ANSI y a la inversa, desde este último al formato OEM.
CONVERT.EXE Utilidad que convierte ficheros .DFM a formato texto plano (.TXT)

  Inicio.


[1]  Por esta razón, más que "Compiladores" preferimos llamarlos "Entornos de programación".

[2]  Para distinguirlas de las que pueden ejecutarse bajo control de la interfaz gráfica y de sus numerosos "Wizards" que se ejecutan pulsando botones (de cajas de herramientas), aquí hemos traducido el original "Command-line" por línea de comando. Se refiere a invocaciones manuales mediante órdenes a la "Shell" del sistema. Ver nota [1] en la página anterior.