Create a Dll, it is a Form, put a timer, then the timer event code below
Void __fastcall TForm1: : Timer1Timer (TObject * Sender)
{
Timer1 - & gt; Enabled=0;
Timer1 - & gt; The Interval=1000;
Timer1 - & gt; Enabled=1;
}
Below is the entrance to the part of the
TForm1 * Form1;
# pragma argsused
BOOL WINAPI DllMain (HINSTANCE hinstDLL, dwords fwdreason LPVOID lpvReserved)
{
return 1;
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Extern "C" __declspec (dllexport) void __stdcall Start (void)
{
Form1=new TForm1 (NULL);
}
Extern "C" __declspec (dllexport) void __stdcall Stop (void)
{
The delete Form1;
}
Compile,
Then create a BCB engineering, the use of DLL, is also a Form, put two buttons,
TForm1 * Form1;
AnsiString STR=ExtractFilePath (Application - & gt; ExeName) + "Project1. DLL";
HINSTANCE HDLL;
Start HRESULT __stdcall (*) (void);
Stop HRESULT __stdcall (*) (void);
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
__fastcall TForm1: : TForm1 (TComponent * Owner) : TForm (the Owner)
{
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Void __fastcall TForm1: : BitBtn1Click (TObject * Sender)
{
Start ().
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Void __fastcall TForm1: : FormCreate (TObject * Sender)
{
HDLL=: : LoadLibrary (STR) c_str ());//dynamic loading
(FARPROC&) Start=GetProcAddress call (HDLL, "Start");
(FARPROC&) Stop=GetProcAddress call (HDLL, "Stop");
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Void __fastcall TForm1: : BitBtn2Click (TObject * Sender)
{
Stop ();
}
Runtime, click on the button 1, see the process in the resource manager, memory, is on the rise,
DLL code to the following, is normal, the memory increases,
Void __fastcall TForm1: : Timer1Timer (TObject * Sender)
{
//Timer1 - & gt; Enabled=0;
Timer1 - & gt; The Interval=1000;
//Timer1 - & gt; Enabled=1;
}
Excuse me what reason?
CodePudding user response:
Sorry to write wrong"DLL code to the following, is normal, without increasing the memory"
CodePudding user response:
Ask yourself the answer?