Fiche technique | |
---|---|
Système d'exploitation : | DOS |
Auteur : | Borland International |
Date de publication : | 1988 |
Catégorie : | Langage C / IDE |
Sommaire
Le logiciel Turbo C 2.0 est la troisième version de Turbo C, il est le successeur du Turbo C 1.5. Il propose l'utilitaire CINSTXFR.EXE pour copier l'installation du TC 1.5 vers TC 2.01. Cette version amène de nombreuses amélioration et correction de bogue par rapport à la précédente version. Il sera remplacé par le Turbo C++ en 1990.
Remarques
- Vous devez utiliser les bibliothèques de la version 2.0 ou 2.01 avec les compilateurs 2.01.
- L'environnement de développement intégré n'affiche plus le message "Press any key to return to Turbo C..." lorsque votre programme se termine. Au lieu de cela, à la fin de votre programme, l'écran Utilisateur est remplacé par l'environnement de développement intégré. Pour afficher l'écran Utilisateur (User screen), appuyez sur la combinaison de touche Alt+F5 ou sélectionnez Alt+R/S. Lorsque vous visualisez l'écran Utilisateur (User screen), appuyez sur n'importe quelle touche pour revenir à l'environnement de développement intégré.
- Une nouvelle pseudo-variable a été ajoutée. _FLAGS contient maintenant la valeur du registre des drapeaux du microprocesseur afin que vous puissiez tester les drapeaux à tout moment de votre programme.
- Les fonctions ssignal() et gsignal() ne sont plus supportées.
- La fonction cprintf() fonctionne maintenant comme documenté. Il ne traduit pas les sauts de ligne en combinaisons CR/LF.
- Certains compatibles IBM PC avaient un problème sous la version 1.5 car elle utilisait l'interruption 18h. La version 2.01 n'utilise pas cette interruption, vous ne devriez donc plus rencontrer ce problème.
- Le programme TCINST.COM dans la version 1.0 a été remplacé par un fichier .EXE. Vous devez supprimer le programme TCINST.COM avant d'essayer d'exécuter le nouveau TCINST.EXE. Sinon, le MS-DOS exécutera en fait l'ancien.
- La structure FILE pour les flux dans la version 1.0 (mais pas 1.5) a été modifiée, afin que la fonction tmpfile() puisse être implémentée. Vous devez recompiler tous les modules qui utilisent des entrées/sorties de flux de données.
- Informations de conversion pour ssignal() et gsignal() : La bibliothèque C et SIGNAL.H ne prennent plus en charge les fonctions ssignal() et gsignal(). Les fonction ssignal() et gsignal() dataient de l'ancien UNIX System III. La norme ANSI ne les prend plus en charge, pas plus que la spécification actuelle de définition d'interface UNIX System V. Pour faciliter les problèmes de portage pour les personnes déplaçant du code plus ancien vers Turbo C, ils fournissent la source des fonctions avec TC 1.0 et TC 1.5. De plus, la discussion suivante décrit comment le code peut être converti pour faire le même genre de choses que ssignal() et gsignal() font sans les utiliser réellement.
- Si vous exécutez INSTALL ou TCINST sur un ordinateur portable ou tout autre système utilisant un écran LCD ou composite, vous devez régler votre système en mode noir et blanc avant d'exécuter INSTALL ou TCINST. Vous pouvez le faire depuis DOS avec la ligne de commande suivante :
- Le paramètre /P pour TC.EXE : Un nouveau paramètre de ligne de commande contrôle l'échange de palette sur les adaptateurs de la carte
vidéo EGA. Utilisation le paramètre :
tc /p bonjour est recommandé uniquement lorsque le programme utilisateur modifie les registres de la palette EGA. Lorsque /P est spécifié, la palette EGA sera restaurée à chaque changement d'écran. En général, vous n'avez pas besoin d'utiliser ce paramètre à moins que votre programme ne modifie les registres de la palette EGA, ou à moins que votre programme utilise BGI pour changer la palette.
- Un programme prenant le relais de l'interruption 9 ne peut pas être débogué avec le débogueur intégré. Utilisez plutôt le débogueur Turbo Debugger autonome.
- La fonction exec() avec Novell Network. Les versions du logiciel système réseau Novell antérieures à 2.01-2 ne prennent pas en charge un appel DOS utilisé par exec(), spawn() et system(). Si vous utilisez l'environnement de développement intégré pour exécuter un programme utilisant l'une de ces fonctions et que vous disposez d'un logiciel système Novell ancien, exécutez le programme à partir de DOS. Pour ce faire, à partir de l'environnement de développement intégré, vous pouvez utiliser Alt+F/O.
- Si vous avez utilisé le programme INSTALL pour mettre à niveau depuis la version 1.5, ou si vous avez utilisé CINSTXFR pour transférer les options d'une installation de la version 1.5, vérifiez le réglage de l'option de cadre de pile standard dans l'environnement de développement intégré (Alt+O/C/C/S). Si vous comptez utiliser le débogueur intégré, cette option doit être activée.
- Si vous rencontrez des problèmes avec la pile d'appels ou les noms qualifiés, assurez-vous que vous avez compilé avec l'option de cadre de pile standard activée.
- La norme ANSI a modifié la syntaxe des étiquettes. Une étiquette doit désormais toujours être suivie d'une instruction. Cela signifie qu'un code comme
celui-ci n'est plus accepté :
- {
- .
- .
- .
- jump_label:
- }
Si vous avez un code comme celui-ci, modifiez-le pour qu'il ressemble à ceci :
- {
- .
- .
- .
- jump_label:
- ; /* besoin d'une instruction ici! */
- }
- Le TCC a un paramètre pour spécifier quel assembleur rechercher. Par défaut, il recherchera TASM.EXE. Si vous souhaitez utiliser un assembleur différent, utilisez -Efilename.
- Lorsque vous utilisez THELP sur un AT&o;T 6300, assurez-vous d'utiliser l'option de ligne de commande /L25, comme décrit dans le fichier THELP.DOC.
- En raison de la mémoire limitée disponible dans le modèle Tiny, il ne prend plus en charge les fonctions graphiques.
- Les pilotes graphiques de la version 1.5 (*.BGI) ne sont pas compatibles avec la bibliothèque graphique de la version 2.01. Utilisez les pilotes graphiques distribués avec la version 2.01.
- THELP : Le THELP est un programme utilitaire résident en mémoire vous donnant accès au système d'aide contextuelle de Turbo C à partir de n'importe quel programme. Vous n'avez pas besoin d'utiliser THELP si vous êtes dans l'environnement de développement intégré, mais il est particulièrement utile si vous utilisez le compilateur de ligne de commande et votre propre éditeur de texte, ou si vous déboguez avec le Turbo Debugger autonome. Pour utiliser THELP, chargez THELP.COM en mémoire en tapant sur la ligne de commande DOS :
- Utilisation de CINSTXFR.EXE : Votre paquet Turbo C 2.01 contient un programme nommé CINSTXFR.EXE, pouvant être utilisé pour transférer
la configuration de l'environnement de développement intégré de votre copie de Turbo C 1.5 (pas pour 1.0) vers
votre nouvelle installation de Turbo C 2.01. Ce programme est exécuté automatiquement par INSTALL.EXE si vous sélectionnez l'option
"Update Hard Drive Copy of Turbo C 1.5 to Turbo C 2.0.". Si vous préférez le faire vous-même, vous pouvez exécuter CINSTXFR.EXE à partir de la ligne de commande
DOS.
Le CINSTXFR.EXE prend deux paramètres : le premier est le nom de votre fichier d'environnement de développement intégré Turbo C 1.5 (généralement TC.EXE), et le second est le nom de votre fichier d'environnement de développement intégré Turbo C 2.01 (également généralement TC.EXE). L'un ou l'autre de ces noms peut également inclure un nom de chemin. Par exemple, si votre copie du fichier d'environnement de développement intégré Turbo C 1.5 s'appelle TC.EXE et se trouve dans un répertoire nommé \TURBOC et que votre copie du fichier d'environnement de développement intégré Turbo C 2.01 s'appelle également TC.EXE mais se trouve dans un répertoire nommé \TC2, la ligne de commande pour copier la configuration de 1.5 à 2.01 ressemblerait à ceci :
CINSTXFR \TURBOC\TC.EXE \TC2\TC.EXE Cela transférera toutes les options que vous avez installées dans votre copie de Turbo C 1.5 vers votre copie de Turbo C 2.01. Le CINSTXFR.EXE ne fonctionne pas avec Turbo C 1.0. Si vous effectuez une mise à niveau à partir de Turbo C 1.0, vous devrez installer les options vous-même.
- Paramètres modifiés pour OBJXREF : La commande OBJXREF est un utilitaire de références croisées de module objet. L'option /O (répertoire
des fichiers objets) a été remplacée par l'option /D (répertoires). Le paramètre permet désormais de spécifier plusieurs répertoires de recherche. La nouvelle syntaxe
est :
OBJXREF /Ddir1[;dir2[;dir3]] OBJXREF /Ddir1 [/Ddir2] [/Ddir3] La commande OBJXREF recherchera dans chacun des répertoires dans l'ordre spécifié tous les fichiers d'objets et de bibliothèques. Si aucune option /D n'est utilisée, seul le répertoire courant sera recherché. Cependant, si une option /D est utilisée, le répertoire actuel ne sera pas recherché à moins qu'il ne soit inclus dans la liste des répertoires. Par exemple, pour rechercher d'abord des fichiers dans le répertoire BORLAND, puis rechercher dans le répertoire courant, vous devez taper :
OBJXREF /Dborland;. Si plusieurs répertoires de recherche sont spécifiés et qu'un fichier correspondant à la spécification de fichier est trouvé, OBJXREF inclura le fichier dans la référence croisée. La commande OBJXREF ne continuera à rechercher les autres répertoires pour la même spécification de fichier que si la spécification de fichier contient des caractères génériques. Une nouvelle option a été ajoutée pour vous permettre de spécifier un fichier de sortie où OBJXREF enverra tous les rapports générés. La nouvelle option est l'option /O et a la syntaxe suivante :
OBJXREF myfile.obj /RU /Ofilename.ext Par défaut, toutes les sorties sont envoyées à la console.
- Lorsqu'il est utilisé avec une carte Zenith Z-449, le code de détection automatique BGI sélectionnera toujours le mode EGA amélioré 640X480. Si vous utilisez le Z-449 avec un moniteur n'étant pas compatible avec ce mode, il sera nécessaire de remplacer les paramètres GraphDriver et GraphMode utilisés dans l'appel BGI initgraph().
- Les constantes définies dans SIGNAL.H pour SIG_IGN et SIG_DFL sont différentes des constantes étant dans TC 1.0 et TC 1.5.
- En utilisant un tableau déclaré globalement de pointeurs de fonction, vous pouvez simuler les actions de ssignal() et gsignal() en utilisant les macros suivantes. Remarquez comment l'entrée de table globale entry[0] est utilisée comme variable temporaire dans la macro ssignal permettant à la macro d'échanger les valeurs tout en retournant celle d'origine.
- int (*_sigTable[16]) = {
- SIG_IGN, SIG_IGN, SIG_IGN, SIG_IGN,
- SIG_IGN, SIG_IGN, SIG_IGN, SIG_IGN,
- SIG_IGN, SIG_IGN, SIG_IGN, SIG_IGN,
- SIG_IGN, SIG_IGN, SIG_IGN, SIG_IGN,
- };
- #define ssignal(num, action) \
- ( \
- (((num) < 1) || ((num) > 15)) ? SIG_DFL : \
- ( \
- (_sigTable[0] = _sigTable[(num)]), /* Liste des actions */ \
- _sigTable[(num)] = (action), /* La dernière expression */ \
- _sigTable[0] /* est la valeur de retour */ \
- ) \
- ) \
- #define gsignal(num) \
- ( \
- (((num) < 1) || ((num) > 15)) ? 0 : \
- ( \
- (_sigTable[(num)] == SIG_IGN) ? 1 : \
- ( \
- (_sigTable[(num)] == SIG_DFL) ? 0 : (*_sigTable[(num)])() \
- ) \
- ) \
- ) \
- Remarques pour les utilisateurs de Turbo Prolog : Si vous liez du code source C avec des programmes générés par Turbo Prolog 2.0, utilisez le fichier INIT.OBJ fourni sur le disque EXAMPLES/BGI/MISC du paquet Turbo C 2.01 au lieu du fichier fourni avec Turbo Prolog 2.0. Certaines modifications apportées à Turbo C 2.01 nécessitent l'utilisation de ce nouveau fichier. Si votre code source C utilise des calculs à virgule flottante et que vous vous connectez avec la bibliothèque de l'émulateur, le Turbo Prolog ne détectera pas automatiquement une puce de coprocesseur mathématique. Si vous voulez forcer le programme à utiliser le coprocesseur, liez-le avec FP87.LIB au lieu de EMU.LIB.
mode bw80 |
ou, vous pouvez forcer INSTALL ou TCINST à apparaître en mode noir et blanc en utilisant le paramètre /b :
tcinst /b |
thelp |
Vous activez le ("pop-up") THELP en tapant sa touche de raccourci - par défaut le pavé numérique 5. Toutes les commandes d'aide de Turbo C s'appliquent (F1, Ctrl+F1, Alt+F1).