OT: constructor Pascal a C++
Milan Kratochvíl
krata.milan na seznam.cz
Středa Květen 25 18:36:54 CEST 2016
Zdravím všechny,
musím přepsat program z pascalu do c++ protože novější knihovny má
dodavatel pouze pro c++. Dělám v c pro jednočipy a tak jsem si myslel že
to nebude tak strašný ale narazil jsem docela na začátku.
V pascalu mám třídu TMereni, kterou vytvořím v události OnCreate od
hlavního formuláře a vše je funkční.
... OnCreate...
...
MereniA:= TMereni.Create();
MereniB:= TMereni.Create();
.....
V C++ mám také vytvoření v OnCreate a překlad je bez chyb, ale běh
programu skončí s hláškou access violation právě při volání constructoru.
Jen dodám že Mereni mam definováno v části Public ve formuláři jako
TMereni* Mereni; a vnitřky funkcí jsou zatím prázdné, protože jsem se
dál nedostal.
Nevíte někdo náhodou co by mohlo být blbě? zkoušel jsem hledat ale asi
se ggla špatně ptám. Používám Delphi 2007 a C++Builder 2007
... OnCreate...
...
MereniA = new TMereni;
MereniB = new TMereni;
.....
TMereni = class
constructor create();
destructor destroy();
private
FMereni1 : integer;
FMereni2 : integer;
FMereni3 : integer;
FPrepocet1 : real;
FPrepocet2 : real;
FPrepocet3 : real;
public
property Mereni1 : integer read FMereni1;
property Mereni2 : integer read FMereni2;
property Mereni3 : integer read FMereni3;
property Prepocet1 : real read FPrepocet1;
property Prepocet2 : real read FPrepocet2;
property Prepocet3 : real read FPrepocet3;
procedure Merime1();
procedure Merime2();
procedure Merime3();
procedure Prepocet();
end;
class TMereni
{
public:
TMereni (void);
~TMereni (void);
private:
int FMereni1;
int FMereni2;
int FMereni3;
float FPrepocet1;
float FPrepocet2;
float FPrepocet3;
public
__property int Mereni1 = { read=FMereni1};
__property int Mereni2 = { read=FMereni2};
__property int Mereni3 = { read=FMereni3};
__property float Prepocet1 = { read=FPrepocet1};
__property float Prepocet2 = { read=FPrepocet2};
__property float Prepocet3 = { read=FPrepocet3};
void __fastcall Merime1(void);
void __fastcall Merime2(void);
void __fastcall Merime3(void);
void __fastcall Prepocet(void);
end;
Díky za nakopnutí.
Milan
Další informace o konferenci Hw-list