Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[BCB][HS] Problème de classes partagées

13 réponses
Avatar
Michael
Bonjour à tous,

je sais que je suis HS avec ce thread, mais je n'arrive pas à avoir de
réponses ailleurs.

Ma question s'adresse aux utilisateurs de Borland C++ Builder 6.

J'ai créé plusieurs programmes qui utilisent certaines classes en commun.
J'ai placé tous ces fichiers dans un répertoire Projects\Classes communes.

Habituellement quand je modifie des fichiers dans un projet, pour constater
les changements il suffit de cliquer sur le bouton Exécuter, qui se charge
de recompiler les fichiers modifiés, de linker ceux-ci avec les fichiers
qui n'ont pas changé, et de créer l'exécutable.

Le problème se situe lorsque je modifie des fichiers communs à plusieurs
programmes.

Quand je fais exécuter, visiblement tout se passe bien, mais les
changements ne sont pas présents dans l'exécutable, et la fenêtre de
déboguage perd les pédales, puisqu'elle me met les points bleus (je sais
pas comment ça s'appelle, mais quand on clique dessus on place un point
d'arret) devant des lignes vides... Je suis donc obligé de reconstruire le
projet en entier, ce qui est évidemment beaucoup plus long...

Par contre quand je modifie des fichiers propres au projet, tout se passe
bien...

Je ne pense pas que le problème vienne des entête précompilés, j'ai tout
vérifié, et j'ai bien partout le même #include avant le #pragma hdrstop

Chaque fichier a son propre fichier entête (défini dans les options du
projet > Onglet Compilateur > Entêtes précompilés > Nom de fichier). J'ai
essayé avec le même enteête pour tous et c'est pareil....


Donc en gros ma question est: comment procédez-vous quand vous devez
utiliser les mêmes classes dans plusieurs projets?

J'espère avoir été clair

Merci d'avance

Mike

3 réponses

1 2
Avatar
Michael
J'ai eu le temps de tester tout ça aujourd'hui, et effectivement quand
on recompile un .LIB, il faut lier l'EXE l'utilisant...


En fait en testant je reconstruisais l'EXE.

Comment sous Builder on fait pour uniquement lier l'exe?

J'ai pas vu cette commande dans l'EDI, peut-être faut il passer par une
ligne de commande vers ILINK32? Mais dans ce cas comment trouver cette
ligne de commande?

Merci d'avance

Avatar
Pierre Maurette
[...]
Comment sous Builder on fait pour uniquement lier l'exe?

J'ai pas vu cette commande dans l'EDI, peut-être faut il passer par une
ligne de commande vers ILINK32? Mais dans ce cas comment trouver cette
ligne de commande?
Je crains que vous perdiez du temps à des détails. Vous avez acheté un

excellent EDI (c'est même pratiquement un RAD), c'est à lui de gérer les
dépendances. Quand il "reconstruit", s'il suffit de lier, il se contente
de lier.
Il est clair que, si le .lib et le .exe sont issus de projets
différents, il est rassurant de forcer une reconstruction du .exe quand
le .lib est modifié (ce qui doit être rare, sinon la mise en LIB n'a
plus de sens).
Néanmoins, l'EDI doit gérer tout ça, comme vous le feriez dans un
makefile en créant explicitement la dépendance de la cible / .lib.
Sinon, la ligne de commande de ilink32 est largement documentée, par
exemple dans bcb6tool.hlp.

PS: il y a parfois des problèmes avec l'EDI de C++Builder, on peut le
dire puisqu'il semble malheureusement près du sapin. Mais dans mon cas,
je n'en ai eu que suite à des plantages graves dans le debogueur
intégré. Je n'ai en revanche pas eu de problème avec Delphi.
--
Pierre

Avatar
Michael
Tiens dernière question, comment faites-vous pour déboguer les .Lib sous
Builder?

Que ce soit en attachant le lib à un exe ou bin à travers l'exe qui utilise
la lib, je n'arrive pas à placer de points d'arrêts...
1 2