hedi
چهارشنبه 01 خرداد 1387, 14:07 عصر
با سلام
سوال اول من این است که وقتی می خواهم Dll خود را با استفاده از دستور FreeLibrary از حافظه خارج کنم برنامه اصلی را هم می بندد.
procedure TForm1.Button3Click(Sender: TObject);
begin
Try
DLLHandle:=LoadLibrary('Demodll.dll');
if DLLHandle <> 0 then begin
@ShowDemoForm:=getProcAddress(DLLHandle,'ShowDemoF orm');
if addr(ShowDemoForm) <> nil then begin
ShowDemoForm;
end
else
showmessage ('function not exists ...');
end
else
showMessage('Dll Not Found!');
Finally
FreeLibrary(DLLHandle);
End;
end;
سوال دوم این است که من یک Function دارای پارامتر تعریف کردم وقتی آن را به صورت اتوماتیک بار گذاری می کنم و مقدار دهی می کنم درست پارامتر را می فرستد اما وقتی با روش Load Library استفاده می کنم کلمات اجق وجق را ارسال می کند
این Function در DLL
procedure PMenu(St:ShortString);stdcall;
begin
Form1 :=TForm1.Create(nil);
ShowMessage(St);
Form1.Label1.Caption:=St;
Form1.ShowModal;
Form1.Free;
end;
اگر می شود در خصوص سوال دوم برای Dll های پارامتری به روش لود دینامیکی یک نمونه بگذارید متشکرم
سوال اول من این است که وقتی می خواهم Dll خود را با استفاده از دستور FreeLibrary از حافظه خارج کنم برنامه اصلی را هم می بندد.
procedure TForm1.Button3Click(Sender: TObject);
begin
Try
DLLHandle:=LoadLibrary('Demodll.dll');
if DLLHandle <> 0 then begin
@ShowDemoForm:=getProcAddress(DLLHandle,'ShowDemoF orm');
if addr(ShowDemoForm) <> nil then begin
ShowDemoForm;
end
else
showmessage ('function not exists ...');
end
else
showMessage('Dll Not Found!');
Finally
FreeLibrary(DLLHandle);
End;
end;
سوال دوم این است که من یک Function دارای پارامتر تعریف کردم وقتی آن را به صورت اتوماتیک بار گذاری می کنم و مقدار دهی می کنم درست پارامتر را می فرستد اما وقتی با روش Load Library استفاده می کنم کلمات اجق وجق را ارسال می کند
این Function در DLL
procedure PMenu(St:ShortString);stdcall;
begin
Form1 :=TForm1.Create(nil);
ShowMessage(St);
Form1.Label1.Caption:=St;
Form1.ShowModal;
Form1.Free;
end;
اگر می شود در خصوص سوال دوم برای Dll های پارامتری به روش لود دینامیکی یک نمونه بگذارید متشکرم