Avertissement "W8060 : Affectation incorrecte possible" inattendu dans BCB6
J'ai réinstallé sur un PC tournant sous Windows 7 64 bits ma vieille version Borland C++ Builder 6 et recompilé une application développée il y a plus de 10 ans sous Windows XP. Cela me permet de continuer à modifier cette application sans avoir achevé la migration sur Borland XE....
Alors que je ne rencontre pas d'anomalie sur le vieux PC sous XP, sur le PC sous Windows 7, la compilation génère un avertissement "W8060 : Affectation incorrecte possible". Cet avertissement est répété pour tous les fichiers .cpp de mon application, y compris celui contenant la fonction "WinMain". A chaque fois l'avertissement pointe sur l'instruction "#Pragma hdrstop". En voici un exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
#include <vcl.h>
#include <dir.h>
#pragma hdrstop // l'avertissement se réfère toujours à cette ligne de code
#include "Wgesmain.h"
#include "Acc_selection_form.h"
#include "View_Account.h"
#include "Custaboutbox.h"
#include "Remise_cheques.h"
#include "Generic_form.h"
#include "saisie_cta.h"
#include "WGescopdef.h"
#include "appel_fioul.h"
#include "ouvre_dossier.h"
#include "saisie_copro.h"
#include "saisie_cpte.h"
#include "Form_Liquidation.h"
#include "Print_Menu.h"
#define R 0x0F
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TMainForm *MainForm;
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{ HANDLE hfile;
............. |
J'ai vérifié l'Aide de BCB6, balayé de nombreux messages et articles sur l'avertissement W8060, sans trouver de piste sur une occurrence de cet avertissement en-dehors de problèmes de syntaxe C++. L'aide BCB n'évoque que l'erreur de code "if (a=b)..... " comme provoquant cet avertissement.
Certes l'application fonctionne, mais je suis curieux et, comme je l'ai lu sur ce forum, il faut s'acharner à corriger son code pour faire disparaître les avertissements.
Merci d'avance
XRay78
Problème résolu, mais je ne sais pas pourquoi !
L'informatique n'est décidément pas la discipline scientifique qu'on nous vante !
Au départ de mon problème, je compilais un programme en C++Builder 6 avec l'option de compilation "Cacher les en-têtes précompilées" cochée et j'obtenais une série d'avertissements "W8060, affectation peut-être incorrecte".
La réponse de stendhal666 m' a amené à considérer que les avertissements du compilateur pouvaient ne pas être pertinents et j'ai donc essayé n'importe quoi : j'ai commencé par supprimer toute pré-compilation des en-têtes et, :lol: le miracle s'est produit : les avertissements W8060 ont disparu.
Deuxième miracle aujourd'hui, je remets mes options de compilation dans l'état initial en re-cochant l'option "Cacher les en-têtes précompilées" et :lol: aucun avertissement n'apparait.
Pourquoi ces avertissements W8060 au départ, pourquoi plus d'avertissement W8060 maintenant ? Je n'en sais rien.
Mais je ne vais pas m'accrocher davantage à ce problème.
Merci stendhal666
Xray78
Tout est bien qui finit bien
Merci leternel, je sais que je pourrai compter sur toi très longtemps encore. :D
Je savais que "cacher" signifiait stocker en mémoire (RAM je suppose, pas sur le disque), mais je n'aurais jamais imaginé que le fait de forcer la re-compilation des en-têtes pouvait avoir le résultat obtenu.
Je retire donc ma petite pique sur le caractère scientifique de l'informatique. Mais depuis que je fais de la micro (j'ai commencé avec deux ordinateurs construits avec un fer à souder vers 1985), j'ai souvent fait l'expérience de l'impossibilité de comprendre pourquoi quelque chose ne marchait pas puis après diverses tentatives finissait par marcher. Avant ton message, j'en étais à ce même stade.....
Je vais pouvoir assurer la maintenance de mon appli sur BCB 6 et continuer à travailler doucement à la migration sur XE quelque chose.
Merci encore à toi et à stenhal666
XRay78