Создание DLL
От: Reidenshi  
Дата: 24.07.12 16:19
Оценка:
При использовании класса из DLL возникает проблема следующего характера:
//---------------------------------------------------------------------------
В файле .h:
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
void __fastcall Button1Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall FormDestroy(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
IMyClass* pMyCalss;
//cnixIProgressBar* pProgressBar;
};
//---------------------------------------------------------------------------
В файле .cpp:
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
pMyCalss = Create();
}
И усли делаю так, то всё работает на ура:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
IMyClass* pCalss = pMyCalss;
pMyCalss->show(10, 10);
}
А если так, то выдает ошибку Access...:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
pMyCalss->show(10, 10);
}
В чём причина данной проблемы и как с ней бороться?

25.07.12 00:26: Перенесено модератором из '.NET' — AndrewVK
Re: Создание DLL
От: Reidenshi  
Дата: 24.07.12 16:37
Оценка:
Здравствуйте, Reidenshi, Вы писали:

R>При использовании класса из DLL возникает проблема следующего характера:

R>//---------------------------------------------------------------------------
R>В файле .h:
R>//---------------------------------------------------------------------------
R>class TForm1 : public TForm
R>{
R>__published: // IDE-managed Components
R> TButton *Button1;
R> void __fastcall Button1Click(TObject *Sender);
R> void __fastcall FormCreate(TObject *Sender);
R> void __fastcall FormDestroy(TObject *Sender);
R>private: // User declarations
R>public: // User declarations
R> __fastcall TForm1(TComponent* Owner);
R> IMyClass* pMyCalss;
R> //cnixIProgressBar* pProgressBar;
R>};
R>//---------------------------------------------------------------------------
R>В файле .cpp:
R>//---------------------------------------------------------------------------
R>void __fastcall TForm1::FormCreate(TObject *Sender)
R>{
R> pMyCalss = Create();
R>}
R>И усли делаю так, то всё работает на ура:
R>void __fastcall TForm1::Button1Click(TObject *Sender)
R>{
R> IMyClass* pCalss = pMyCalss;
R> pMyCalss->show(10, 10);
R>}
R>А если так, то выдает ошибку Access...:
R>void __fastcall TForm1::Button1Click(TObject *Sender)
R>{
R> pMyCalss->show(10, 10);
R>}
R>В чём причина данной проблемы и как с ней бороться?

Вот так тоже всё работает без ошибок:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i=100;
pMyCalss->show(10, 10);
}
В чём же причина?
Re: Создание DLL
От: Danchik Украина  
Дата: 25.07.12 11:50
Оценка:
Здравствуйте, Reidenshi, Вы писали:

R>В чём причина данной проблемы и как с ней бороться?


Читать вдумчиво до просветления
http://softwarer.nm.ru/packages.html
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.