Borland c++Builder 3 vers 6 sous windows 7

Fermé
désarroi42 Messages postés 241 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 9 février 2024 - 20 févr. 2016 à 16:40
Célien Messages postés 5729 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 9 septembre 2021 - 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

A voir également:

3 réponses

désarroi42 Messages postés 241 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 9 février 2024 9
26 févr. 2016 à 19:03
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
0
désarroi42 Messages postés 241 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 9 février 2024 9
1 mars 2016 à 17:10
Bonjour à tous ...

Ce sujet semble difficile ..puisque je n'ai eu pour l instant aucune réponse
0
Célien Messages postés 5729 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 9 septembre 2021 1 991
1 mars 2016 à 19:32
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é...
0