Witam, korzystam z C++ BUILDER 6, wszystko działa sprawnie w programie do momentu dołączenia do .exe bibliotek (odznaczam Use Dynamic RTL oraz Build with runtime packages). Wtedy przy próbie kompilacji program wysypuje błąd: "Access Violation at address 004AFF39. Read of Address 00000000.". Po czym podświetla się linijka : ios_base(), w nowo otwartej karcie _ios.c. Błąd może mieć jakiś związek z biblioteką fsteam.h, ale nie mam pojęcia czy i dlaczego. Dołączam kod, jeśli okaże się potrzebny.
//---------------------------------------------------------------------------
#include <vcl.h>
#include <fstream.h>
#include <windows.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "trayicon"
#pragma resource "*.dfm"
TForm1 *Form1;
int s,wczesniej;
fstream plik;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void Koniec(int sekundy)
{
plik.open("TIME.txt",ios::out);
plik.clear();
plik<<sekundy;
plik.close();
Application->Terminate();
}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
AnsiString godz,min,sec;
s++;
int godzin,minut,sekund;
godzin=s/3600;
minut=(s-godzin*3600)/60;
sekund=s-godzin*3600-minut*60;
godz=IntToStr(godzin);
min=IntToStr(minut);
sec=IntToStr(sekund);
if(godzin<10) godz="0"+godz;
if(minut<10) min="0"+min;
if(sekund<10) sec="0"+sec;
Label1->Caption = godz+":"+min+":"+sec;
int godzindzis,minutdzis,sekunddzis;
AnsiString godzdzis,mindzis,secdzis;
int dzis=s-wczesniej;
godzindzis=dzis/3600;
minutdzis=(dzis-godzindzis*3600)/60;
sekunddzis=dzis-godzindzis*3600-minutdzis*60;
godzdzis=IntToStr(godzindzis);
mindzis=IntToStr(minutdzis);
secdzis=IntToStr(sekunddzis);
if(godzindzis<10) godzdzis="0"+godzdzis;
if(minutdzis<10) mindzis="0"+mindzis;
if(sekunddzis<10) secdzis="0"+secdzis;
Label2->Caption = "Czas Dzisiaj: "+godzdzis+":"+mindzis+":"+secdzis;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
string linia;
plik.open("TIME.txt",ios::in);
if ( plik.peek() == std::ifstream::traits_type::eof() )
s=0;
else
plik>>s;
wczesniej=s;
plik.close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
Koniec(s);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Zakocz1Click(TObject *Sender)
{
Koniec(s);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ResetujCzas1Click(TObject *Sender)
{
if(Application->MessageBox("Czy na pewno chcesz zresetować czas? \n Jego aktualna wartość przepadnie!"
,"ARE YOU SURE?!",MB_YESNO | MB_ICONWARNING | MB_TOPMOST)==6)
{
remove("TIME.txt");
s=0;
Application->Terminate();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Zmiedatstartow1Click(TObject *Sender)
{
Form2->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TrayIcon1Restore(TObject *Sender)
{
if(Form1->Visible==false)
Form1->Show();
else
Form1->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Poka1Click(TObject *Sender)
{
if(Form1->Visible==false)
Form1->Show();
else
Form1->Hide();
}
//---------------------------------------------------------------------------
~~~~~~~~~~
ORAZ UNIT2:
~~~~~~~~~~
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
AnsiString data=Edit1->Text;
Form1->Caption="Czas na komputerze od "+data;
Close();
}
//------