Access violation [Builder] - C++ - Programmation
Marsh Posté le 07-04-2004 à 14:59:39
"quand l'unité n'en a pas"
quand elle n'a pas quoi ? de header ? tu inclues un header qui n'existe pas ?
Sinon pour l'erreur je sais pas trop d'où ça pourrait venir. Soit un bug (ça ne serait pas le seul) soit une version un peu foireuse de C++Builder (genre copie douteuse )
Marsh Posté le 07-04-2004 à 15:17:19
Non, ce n'est pas une copie douteuse! (pour une fois)
l'unité dont je parlais n'a pas de form associée car elle me sert juste a la creation de tableaux avec des calculs dessus, l'utilisateur n'appelle pas directement les fonctions de cette unité. Mais j'ai deja inclus cette satanée unité dans d'autres et ca a tres bien marché, je ne vois vraiment pas pourquoi ca ne marche pas avec la nouvelle...
Pour l'erreur avec le fichier .tds, c'est vrai que mon ordi s'est planté mechamment recemment avec BCB qui tournait. Ca pourrait etre la cause de tout tu penses?
Marsh Posté le 07-04-2004 à 15:22:35
Ce que t'appelles "unité", c'est le .cpp ? En général ça ne s'inclue pas, on n'inclue que les .h/.hpp
Pour l'erreur du .tds, bah supprime le fichier, c'est juste un fichier temporaire.
Marsh Posté le 07-04-2004 à 23:33:18
ce que j'appelle unité, c'est la structure .cpp + .h, obtenu dans BCB6 par New->Unit, il n'y a pas de form (.dfm) associée. J'inclus bien-sur le header seulement. Pour une form, New->Form produit un .cpp, un .h et un .dfm.
D'un autre coté, il y a pas mal de communication entres mes .cpp, donc je dois inclure presque tous les headers dans chaque .cpp, avec appel de variables exterieures par "extern". Y a t-il une limite a cela?
L'ennui avec le .tds est que tant que BCB reste ouvert, je ne peux pas l'effacer ("ce fichier est utilisé par un programme... blah blah blah" ). Je dois donc a chaque fois fermer BCB, effacer le .tds, rouvrir BCB... plutot penible.
FroggyDew
Marsh Posté le 07-04-2004 à 23:55:05
normalement y a pas de limite,
je sais pas d'où pourrait venir ce crash
Marsh Posté le 07-04-2004 à 23:58:09
Est-ce que l'inclusion du "header" ne reclamerais pas des ressources qui ne sont pas encore actives. Pour ce problème, dans certains cas il m'a suffit d'inverser l'ordre des "includes" ou même des "Application->CreateForm" dans lunité principale.
Marsh Posté le 08-04-2004 à 23:24:55
hum hum, j'ai du nouveau, ce n'est pas terrible...
Apres avoir joué avec l'ordre des "includes" et la declaration des forms dans le Winmain, en essayant un "Make", j'ai obtenu instantanément le fameux "Access violation", donc je re-essaye et cette fois j'obtiens une erreur bcb.exe "An exception (C0000005) occured during DllEntryPoint or DllMain in module C:\Program Files\Borland\CBuilder6\Bin\ilink32.dll"
AAAAAaaaaaahhhh!!! Qu'est-ce qu'il se passe???
Marsh Posté le 08-04-2004 à 23:57:51
Désolé mais là je n'ai pas idée de ce qui arrive. Mais pour supprimer le .tds, il suffit de lancer "Tout construire", ça efface et recrée tous les fichiers de débogage et de liens.
Marsh Posté le 18-04-2004 à 00:15:37
OK CA MAAAAARCHE !!!!!!!!
Bon, le problème résidait dans le fait d?avoir la declaration de mes variables globales dans mes headers, donc les différentes inclusions des headers des unités faisait que ces variables étaient déclarées plusieurs fois, ce qui perturbait le linker.
C?est une erreur que je ne referai plus, j?aurais appris? 2 semaines pour trouver la raison de ce problème? ce que la programmation peut être cruelle parfois?.
Merci quand-même pour votre aide, ce forum est génial.
A+
Marsh Posté le 27-11-2009 à 12:38:23
Slt a tous!
J'ai un problème qui me semble proche de celui posé sans ce forum!
J'ai crée une classe et lorsque j'appelle une fonction membre de la celle avec comme paramètre un variable de même typt q la classe concernée, j'ai le message d'erreur suivant:
"access violation at 0x00403373:wrtie of adress 0x0006c074"
Quelqu'un pourrait t-il m'aider?
RMQ: je bosse sous c++ builder!
Marsh Posté le 07-04-2004 à 14:52:47
Bonjour tout le monde,
J'ai un gros probleme sous Borland C++ Builder 6 avec mon application que je n'arrive pas a resoudre. J'apprecierais ENORMEMENT toute aide qui pourrait m'aider a avancer.
Mon programme comporte plusieurs unités avec une form et 2 sans. Dans l'une d'elles, quand j'"include" le header d'une des unités avec une form, ca va bien, mais quand l'unité n'en a pas, j'obtiens une erreur du linker qui dit "Access violation, link terminated". Et quand j'essaye de recompiler, j'obtiens "[Linker Error] Could not delete ProjectName.tds (project already open in IDE?)".
Quelqu'un aurait-il une idée (quelle qu'elle soit) sur la raison de mon probleme et sur comment y remedier? Merci beaucoup d'avance, je suis au bord de la crise de nerf...
A+