FAQ C++ BuilderConsultez toutes les FAQ
Nombre d'auteurs : 60, nombre de questions : 670, dernière mise à jour : 21 novembre 2010 Ajouter une question
Cette F.A.Q. a été réalisée à partir des questions fréquemment posées sur le forum C++ Builder de developpez.com et de l'expérience personnelle des auteurs.
Nous tenons à souligner que cette F.A.Q. ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette F.A.Q. ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, contactez pottiez
Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.
L'équipe C++ Builder de Developpez.
Commentez cette FAQ : Commentez
- [Lieur Erreur] Unresolved external 'UneFonction()' referenced from XXX.OBJ ?
- [Lieur Erreur] Unresolved external '__fastcall TForm1::UnGestionnaireDEvenement(...)' referenced from XXX.OBJ ?
- [Lieur Erreur fatale] Fatal: Could not open XXX.exe (program still running?) ?
- [Lieur Erreur] Unresolved external '__fastcall TXXX::MaMethode(...)' referenced from XXX.OBJ ?
- [Lieur Erreur fatale] Fatal : Unable to open file 'XXX.LIB' ou 'XXX.BPI' ?
Cette erreur se produit quand vous appelez une fonction dont vous avez bien inclus le fichier entête la déclarant, mais dont le lieur ne trouve pas son implémentation.
Une cause possible est que cette fonction provient soit d'une librairie (.lib) ou d'un fichier source (.cpp) et que vous avez omis de l'ajouter au projet.
Dans ce cas, la solution est d'ajouter la librairie ou le fichier source au projet (via le menu Projet | Ajouter au projet...)
Il peut également arriver que l'erreur se produise même si le .lib est bien ajouté au projet. En ce cas, il s'agit probablement d'une librairie que vous avez développée, et dans laquelle vous venez d'apporter des modifications.
Une solution peut alors être de supprimer tous les fichiers temporaires (.obj, .tds, .~, les .lib et .bpl s'ils existent), et de reconstruire la librairie (la recompilation ne suffit pas).
Une cause possible de cette erreur est que vous avez effacé complètement la définition de la méthode de l'évènement (Button1Click par exemple), créée automatiquement par l'EDI, alors que sa déclaration est toujours dans le header (.h)
Dans ce cas, la solution est d'effacer la déclaration de la méthode en question.
A l'avenir, si vous voulez supprimer une méthode liée à un évènement, supprimez seulement le contenu de la définition, l'EDI fera les suppressions nécessaires à la prochaine compilation.
La cause probable de cette erreur est que le programme que vous essayez de compiler, construire ou exécuter est déjà en cours d'exécution.
La solution est simple : fermer l'instance du programme en cours d'exécution.
A partir de Windows Vista cette erreur peut apparaître si vous n'executez pas C++Builder en tant qu'Administrateur.
Une cause possible est que vous avez ajouté une méthode personnelle à une fiche(TForm) ou à une autre classe.
Vous l'avez donc déclarée dans l'entête de la classe (prenons TForm1 par exemple)
Code c++ : | Sélectionner tout |
1 2 | private: // Déclarations de l'utilisateur void __fastcall MaMethode(); |
Code c++ : | Sélectionner tout |
1 2 3 4 | void __fastcall MaMethode() { ShowMessage("Execution de MaMethode"); } |
Dans ce cas, la solution est de rajouter le nom de la classe devant la méthode (TForm1:: dans notre exemple).
Code c++ : | Sélectionner tout |
1 2 3 4 | void __fastcall TForm1::MaMethode() { ShowMessage("Execution de MaMethode"); } |
Cette erreur provient du fait que C++ Builder référence systématiquement dans le fichier projet tous les paquets dont il dispose, même s'ils ne sont pas nécessaires à ce projet. Cela peut poser des problèmes lors de la désinstallation de paquets, ou de la récupération de projets provenant d'une source externe.
Pour résoudre ce problème, deux solutions sont possibles (même procédure à suivre pour les deux types de fichiers) :
La première (N.B. : avant d'essayer cette solution il est conseillé de faire une copie du fichier projet.bpr)
- Fermer le projet concerné
- Ouvrir le fichier projet.bpr avec un éditeur de texte
- Supprimer toutes les occurrences de 'XXX.LIB'
- Sauvegarder le fichier
- Réouvrir le projet
La deuxième:
- Ouvrir le projet concerné
- Faire un click doit sur le nom du projet et ensuite choisir "Modifier la source des options" pour afficher le fichier xml
- Chercher toutes les occurrences de 'XXX.LIB' et les supprimer
- Sauvegarder le projet SANS LE FERMER
- Retirer un fichier de la liste des fichiers du projet (peu importe lequel)
- Sauvegarder le projet et fermer C++ Builder
- Réouvrir le projet
- Rajouter le fichier retiré auparavant
- Compiler
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.