Mélange de langage de programmation
Cette base de connaissance est relié au question en relation avec le Turbo Pascal mélangé avec d'autres langage de programmation.
Les fichiers .OBJ générés par Turbo C et Turbo Assembler sont-ils compatibles avec Turbo Pascal 4.0 ou supérieur ?
Oui. Vous pouvez écrire des routines Turbo C ou Turbo Assembler et lier les fichiers .OBJ dans vos programmes Turbo Pascal en utilisant la directive de compilation {$L}. Voir l'exemple CTOPAS sur la disquette de distribution.
Turbo Pascal crée-t-il des fichiers objets pouvant être liés à d'autres langages ?
Turbo Pascal 4.0+ génère des fichiers .TPU (Turbo Pascal Unit), pas des fichiers .OBJ. Cette décision a été prise pour plusieurs raisons :
- Les fichiers .TPU de Turbo Pascal 4.0+ sont plus petits que les fichiers .OBJ et contiennent des informations symboliques importantes pour la prise en charge des conventions de type strictes de Pascal (types, constantes,...).
- Les fichiers .TPU permettent une «liaison intelligente» : l'élimination du code et des données inutilisés procédure par procédure.
- Les fichiers .TPU permettent une gestion de projet intégrée via les commandes Make et Build de la version 4.0+.
- Les fichiers .TPU permettent des vitesses de compilation plus rapides (34 000 lignes par minute sur un PS/2 modèle 60).
La directive de compilation $L fonctionnera-t-elle pour des fichiers objets de compilation autres que l'assembleur ?
Cela dépend du langage. TURBO nécessite que tout le code du fichier .OBJ soit dans *un* segment CODE et que toutes les données soient dans *un* segment DATA. Avec le langage assembleur, c'est facile, mais cela peut ne pas fonctionner avec certains compilateurs de langage de haut niveau. Vous pouvez utiliser Turbo C pour générer des fichiers .OBJ à utiliser par les programmes Turbo Pascal. Un exemple, CPASDEMO.PAS est inclus sur les disques de distribution.
Puis-je lier des modules, écrits en Microsoft C, à des programmes Turbo Pascal ?
Oui. Les modules .OBJ. de Microsoft C peuvent être liés à condition qu'ils n'utilisent pas la bibliothèque d'exécution C. Les mêmes limitations s'appliquent aux modules Microsoft C qu'aux modules Turbo C.