void __fastcall TForm1::Button1Click(TObject *Sender)
{
TApplication *App=Application;
void (__stdcall *ShowForm)(TApplication* ExeApp);
HINSTANCE dllInstance = LoadLibrary("DLLForm.dll");
if (dllInstance)
{ShowForm = (void(__stdcall *)(TApplication* App))
GetProcAddress(dllInstance, "_ShowForm");
if (ShowForm) ShowForm(App);
else ShowMessage("ERR#2");
}
else ShowMessage("ERR#1");
FreeLibrary(dllInstance);
}
Dll и формы
Вот пришло время изучить разработку плагинов.
Побродил, почитал, достаточно много инфы по этой теме. Но вся она либо поверхостно либо для профи, а не для моей капусты!
Стал писать маленький пример и сразу споткнулся :(
Код примера:
test.cpp
Код:
dll.cpp
Код:
extern "C" void __export ShowForm(TApplication* ExeApp)
{
TFormInDll *form;
Application=ExeApp;
form=new TFormInDll(0);
form->ShowModal();
delete form;
}
{
TFormInDll *form;
Application=ExeApp;
form=new TFormInDll(0);
form->ShowModal();
delete form;
}
Проблемы в том что если отключить Build in rintime, чтоб программа работала на всех компах, выскакивает ошибка с памятью.
Как быть?