Есть главное MDI-приложение, которое вызывает дочерние MDI-формы из разных DLL-ек. Все формы наследуются от одного и того же класса:
{PluginForm.h}
#ifndef PluginFormH
#define PluginFormH
#include <Forms.hpp>
class TPluginForm: public TForm
{
public:
__fastcall TPluginForm(TComponent* Owner);
virtual __fastcall int SendRequest(void) = 0;
};
#endif
{PluginForm.cpp}
#include "PluginForm.h"
__fastcall TPluginForm::TPluginForm(TComponent* Owner): TForm(Owner)
{
}
и пока что одна форма:
{Form_MB_06.h}
...
class TfmMB_06: public TPluginForm
{
...
public: // User declarations
__fastcall TfmMB_06(TComponent* Owner);
...
};
extern PACKAGE TfmMB_06 *fmMB_06;
#endif
{Form_MB_06.cpp}
...
TfmMB_06 *fmMB_06;
__fastcall TfmMB_06::TfmMB_06(TComponent* Owner)
: TPluginForm(Owner)
{
}
...
...и наконец сам модуль DLL:
{MB_06.h}
...
extern "C" void MB_06_DLL ShowMDIChildForm(int mainApp);
...
{MB_06.cpp}
#pragma hdrstop
#include "_06_WSR.h"
#include "Form_MB_06.h"
USEFORM("Form_MB_06.cpp", fmMB_06);
TApplication *DLLApp = NULL;
...
void ShowMDIChildForm(int mainApp)
{
if (!DLLApp)
{
DLLApp = Application;
Application = (TApplication*)mainApp;
}
fmMB_06 = new TfmMB_06(Application->MainForm);
fmMB_06->Show();
}
...
{MB_06.def}
...
ShowMDIChildForm @4 ; ShowMDIChildForm
___CPPdebugHook @7 ; ___CPPdebugHook
_fmMB_06 @8 ; _fmMB_06
...
DLL-ка динамически загружается в приложении. Причем вызов функции, возвращающей число, проходит прекрасно.
Однако: При вызове функции ShowMDIChildForm((int)Application)
выдается исключение EOSError.
Может кто встречался с подобной проблемой. Подскажите, плиз. Заранее благодарен.
P.S. По данной теме выполнялся поиск, правда безуспешно

.