Menu

Borland c++Builder 3 vers 6 sous windows 7 [Fermé]

Messages postés
128
Date d'inscription
mardi 9 février 2010
Statut
Membre
Dernière intervention
11 mai 2019
- - Dernière réponse : Célien
Messages postés
5784
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
23 juin 2019
- 1 mars 2016 à 19:32
Bonjour,

Je voudrais faire executer une application exemple du livre de Gérard Leblanc Borland C++Builder 3 en version C++Builder 6 d'embarcadero.

J'ai donc charge un projet du chapitre 16 du CD Rom exemples accompagnant

le projet est Anim.

Je n'ai pas de message d'erreur à la compilation construction du projet .
Par contre à l'execution j'ai le message d'erreur de violation
address 00401A91 in module Anim.exe read of address 00000000

Commment faire pour avoir une execution "propre" ?...
Est du fait du passage de la Version 3 a 6 ?... ou le fait de travailler sous Windows 7 ?...

Merci de votre aide

Afficher la suite 

3 réponses

Messages postés
128
Date d'inscription
mardi 9 février 2010
Statut
Membre
Dernière intervention
11 mai 2019
1
0
Merci
Voici le source .. jusqu au point d arret ou se situe l exception
merci de votre aide ...

//
// Programme d'accompagnement de l'ouvrage
// "C++ Builder 3"
// Gérard Leblanc
// Editions Eyrolles, 1998
//

//---------------------------------------------------------------------------
#include <vcl\vcl.h>
#pragma hdrstop
#include <stdlib.h>
#include "AnimFP.h"
//---------------------------------------------------------------------------
#pragma resource "*.dfm"


#define N 5

TFP *FP;
Graphics::TBitmap *ImageFond, *Mask1, *Mask2;
int FenW, FenH, MaskW, MaskH;
struct
{
int x, y, dx, dy;
} Pos[N];
//---------------------------------------------------------------------------
__fastcall TFP::TFP(TComponent* Owner)
: TForm(Owner)
{
// Charger l'image de fond
ImageFond = new Graphics::TBitmap();
ImageFond->LoadFromResourceName((int)HInstance, "Fond");
Mask1 = new Graphics::TBitmap();
Mask1->LoadFromResourceName((int)HInstance, "Msk1");
MaskW = Mask1->Width; MaskH = Mask1->Height;
Mask2 = new Graphics::TBitmap();
Mask2->LoadFromResourceName((int)HInstance, "Msk2");
randomize();
}
__fastcall TFP::~TFP()
{
delete ImageFond, Mask1, Mask2;
}
//---------------------------------------------------------------------------
void __fastcall TFP::FormCreate(TObject *Sender)
{
ClientWidth = ImageFond->Width; FenW = ClientWidth; Ici Plantage !
ClientHeight = ImageFond->Height; FenH = ClientHeight;


J'ai placé un point d'arret a la ligne 47 AnimFP.cpp J'ai ces messages quand je passe le curseur dessus

ClientWidth = E2208 Accès impossible dans une portée inactive

ImageFond->Width = E2195 Impossible d'évaluer l'appel de fonction

FenW = ClientWidth ; ClientWidth = E2208 Accès impossible dans une portée inactive


Pourtant ce projet marchait bien sous C++ 3 exemples du livre
Messages postés
128
Date d'inscription
mardi 9 février 2010
Statut
Membre
Dernière intervention
11 mai 2019
1
0
Merci
Bonjour à tous ...

Ce sujet semble difficile ..puisque je n'ai eu pour l instant aucune réponse
Messages postés
5784
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
23 juin 2019
1842
0
Merci
Salut,

Tu cherches à faire quoi au juste ?

Déjà C++Builder est pas un EDI pur C++ vu qu'il est basé sur la VCL qui est en Pascal, et un EDI RAD c'est pas une bonne idée pour commencer à apprendre un langage.

Si tu veux apprendre C++, pourquoi pas télécharger un éditeur comme par exemple codeblocks (ou autre outil pour C++ ), et suivre un cours C++ qui est un vrai cours pur C++ et qui ne fait pas appel à un vieux C++Builder périmé...