BGIOBJ.EXE |
BGI à objet |
---|---|
Turbo C 2.0 |
Syntaxe
BGIOBJ [/F] source destination publicname seg-name seg-class |
Paramètres
Paramètre | Description |
---|---|
-F | Ce paramètre permet d'indiquer à BGIOBJ.EXE d'utiliser un nom de segment autre que _TEXT (valeur par défaut) et de modifier le nom public et le nom du fichier de destination. |
/F | Ce paramètre permet d'indiquer à BGIOBJ.EXE d'utiliser un nom de segment autre que _TEXT (valeur par défaut) et de modifier le nom public et le nom du fichier de destination. |
source | Ce paramètre d'indiquer le pilote ou le fichier de police de caractères à convertir. Si le fichier ne fait pas partie des fichiers de pilote/police de caractères livrés avec Turbo C, vous devez spécifier un nom de fichier complet (y compris l'extension). |
destination | Ce paramètre d'indiquer le nom du fichier objet à produire. Le nom du fichier de destination par défaut est source.OBJ ou sourceF.OBJ si vous utilisez l'option /F. |
publicname | Ce paramètre permet d'indiquer le nom étant utilisé dans le programme lors d'un appel à registerbgidriver ou registerbgifont (ou leurs versions far respectives) à lier dans le module objet. |
seg-name | Ce paramètre permet d'indiquer le nom public, soit le nom externe utilisé par l'éditeur de liens, il doit donc être le nom utilisé dans le programme, précédé d'un trait de soulignement. Si votre programme utilise les conventions d'appel Pascal, n'utilisez que des lettres majuscules et n'ajoutez pas de trait de soulignement. |
seg-class | Ce paramètre permet d'indiquer un nom de segment facultatif ; la valeur par défaut est _TEXT (ou filename_TEXT si /F est spécifié) Il s'agit d'une classe de segment facultative ; la valeur par défaut est CODE. |
Description
Cette commande permet d'effectuer la conversion pour les polices de caractères et les pilotes .BGI.
Le BGIOBJ est un utilitaire que vous pouvez utiliser pour convertir des fichiers de pilote graphique et des ensembles de caractères (fichiers de polices de caractères à traits) en fichiers objet (.OBJ). Une fois qu'ils sont convertis, vous pouvez les lier à votre programme, en les intégrant au fichier exécutable. Ceci est proposé en plus du schéma de chargement dynamique du paquet graphique, dans lequel votre programme charge les pilotes graphiques et les ensembles de caractères (polices de caractères à traits) à partir du disque au moment de l'exécution. Lier les pilotes et les polices de caractères directement dans votre programme est avantageux car le fichier exécutable contient tous (ou la plupart) des pilotes et/ou des polices de caractères dont il pourrait avoir besoin, et n'a pas besoin d'accéder aux fichiers de pilotes et de polices sur le disque lors de l'exécution. Cependant, lier les pilotes et les polices de caractères dans votre fichier exécutable augmente sa taille. Pour convertir un pilote ou un fichier de polices de caractères en un fichier objet pouvant être lié, utilisez l'utilitaire BGIOBI.EXE. Voici la syntaxe simplifiée :
BGIOBJ sourcefile |
où sourcefile est le pilote ou le fichier de police de caractères à convertir en fichier objet. Le fichier objet créé porte le même nom de fichier que le fichier source, avec l'extension .OBJ ; par exemple, EGAVGA.BGI donne EGAVGA.OBJ, SANS.CHR donne SANS.OBJ,...
Remarques
- Ajout des nouveaux fichiers .OBJ à GRAPHICS.LIB : Vous devez ajouter les modules de pilote et d'objet de police à GRAPHICS.LIB,
afin que l'éditeur de liens puisse les localiser lorsqu'il établit une liaison dans les routines graphiques. Si vous n'ajoutez pas ces nouveaux modules d'objets à
GRAPHICS.LIB, vous devrez les ajouter à la liste des fichiers dans le fichier de projet TC (.PRJ), sur la ligne de commande TCC ou sur la ligne de
commande TLINK. Pour ajouter ces modules d'objets à GRAPHICS.LIB, appelez le Turbo Librarian (TLIB) avec la ligne de commande suivante :
tlib graphics + objectfilename [ + objectfilename ... ] où objectfilename est le nom du fichier objet créé par BGIOBI.EXE (tel que CGA, EGAVGA, GOTH,...) ; l'extension .OBJ est implicite, vous n'avez donc pas besoin de l'inclure. Vous pouvez ajouter plusieurs fichiers avec une seule ligne de commande pour gagner du temps.
- Enregistrement des pilotes et des polices de caractères : Après avoir ajouté les modules de pilote et d'objet de police de caractères à GRAPHICS.LIB, vous devez enregistrer tous les pilotes et polices de caractères que vous souhaitez lier ; vous faites cela en appelant registerbgidriver et registerbgifont dans votre programme (avant d'appeler initgraph). Cela informe le système graphique de la présence de ces fichiers et garantit qu'ils seront liés lors de la création du fichier exécutable par l'éditeur de liens. Les routines d'enregistrement prennent chacune un paramètre ; un nom symbolique défini dans GRAPHICS.H. Chaque routine d'enregistrement renvoie une valeur non négative si le pilote ou la police est enregistré avec succès. Le tableau suivant est une liste complète des pilotes et des polices de caractères inclus avec Turbo C. Il montre les noms à utiliser avec les fonctions registerbgidriver et registerbgifont.
Fichier de pilote (*.BGI) | Nom symbolique (registerbgidriver) | Fichier de police de caractères (*.CHR) | Nom symbolique (registerbgifont) |
---|---|---|---|
CGA | CGA_driver | TRIP | triplex_font |
EGAVGA | EGAVGA_driver | LITT | small_font |
HERC | Herc_driver | SANS | sansserif_font |
ATT | ATT_driver | GOTH | gothic_font |
PC3270 | PC3270_driver | ||
IBM8514 | IBM8514_driver |
Exemple
Voici un exemple complet : Supposons que vous souhaitiez convertir les fichiers du pilote graphique CGA, de la police gothique et de la police de caractères triplex en modules objets, puis les lier à votre programme.
- Convertissez les fichiers binaires en fichiers objets à l'aide de BGIOBI.EXE, comme indiqué dans les lignes de commande distinctes suivantes :
bgiobj ega
bgiobj trip
bgiobj gothCela crée trois fichiers&nbsb;: CGA.OBI, TRIP.OBJ et GOTH.OBJ.
- Vous pouvez ajouter ces fichiers objets à GRAPHICS.LIB avec cette ligne de commande TLIB :
- Si vous n'ajoutez pas les fichiers objets à GRAPHICS.LIB, vous devez ajouter les noms de fichiers objets CGA.OBJ, TRIP.OBJ et GOTH.OBJ à votre liste de projets (si vous utilisez l'environnement intégré de Turbo C), ou à la ligne de commande TCC. Par exemple, la ligne de commande TCC ressemblerait à ceci :
- L'option /F : Si vous obtenez l'erreur de l'éditeur de liens Le segment dépassant 64 Ko (ou une erreur similaire) après avoir lié plusieurs fichiers de pilotes et/ou de polices de caractères (en particulier avec les programmes de modèles petits et compacts), alors vous devez tenir compte de ceci. Par défaut, les fichiers créés par BGIOBJ.EXE utilisent tous le même segment (appelé _TEXT). Cela peut causer des problèmes si votre programme est lié à de nombreux pilotes et/ou polices de caractères, ou lorsque vous utilisez le modèle de mémoire petite ou compacte. Pour résoudre ce problème, vous pouvez convertir un ou plusieurs pilotes ou polices de caractères avec l'option BGIOBJ /F. Cette option demande à BGIOBJ d'utiliser un nom de segment de la forme filename_TEXT, de sorte que le segment par défaut ne soit pas surchargé par tous les pilotes et polices de caractères liés (et, dans les programmes modèles petits et compacts, tout le code du programme). Par exemple, les deux lignes de commande BGIOBJ suivantes indiquent à BGIOBJ d'utiliser des noms de segment de la forme EGAVGA_TEXT et SANS_TEXT :
- Vous enregistrez ces fichiers dans votre programme graphique comme ceci :
- /* Le fichier d'entête déclare CGA_driver, triplex_font et gothic_font */
- #include <graphics.h>
- /* Enregistrez-vous et vérifiez les erreurs (on ne sait jamais .... ) */
- if (registerbgidriver(CGA_driver) < 0) exit(1);
- if (registerbgifont(triplex_font) < 0) exit(1);
- if (registerbgifont(gothic_font) < 0) exit(1);
- /* ... */
- initgraph( .... );/* initgraph doit être appelé après l'enregistrement */
- /* ... */
tlib graphics +cga +trip +goth |
tcc niftgraf graphics.lib cga.obj trip.obj goth.obj |
bgiobj /F egavga bgiobj /F sans |
Lorsque vous sélectionnez l'option /F, BGIOBJ ajoute également F au fichier objet cible (EGAVGAF.OBJ, SANSF.OBJ,...) et ajoute _far au nom étant utilisé avec registerfarbgidriver et registerfarbgifont. (Par exemple, EGAVGA_driver devient EGAVGA_driver_far.) Pour les fichiers créés avec /F, vous devez utiliser ces routines d'enregistrement far au lieu des registres réguliers registerbgidriver et registerbgifont. Par exemple :