المشاركات : 54
المواضيع 17
:
: 26
الإنتساب : Jun 2017
السلام عليكم
يوجد لدي برنامج يستخدم مكتبة dll
نفرض اسمها test.dll ماهوا الكود المناسب للتحقق ان كانت هذه المكتبة تعمل او لا
حاولت مع FindWindow لم ينجح الامر
المشاركات : 654
المواضيع 34
:
: 106
الإنتساب : Aug 2010
وعليكم السلام
عن طريقة الدالة LoadLibrary
سبحان الله وبحمده سبحان الله العظيم
كل من 1 user says قال شكرا ل Agmcz على المشاركة المفيدة1 user says Thank You to Agmcz for this post
• محمودد
المشاركات : 54
المواضيع 17
:
: 26
الإنتساب : Jun 2017
01-04-2022, 08:54 PM
(آخر تعديل لهذه المشاركة: 02-04-2022, 02:46 AM بواسطة محمودد.)
(30-03-2022, 07:36 PM)Agmcz كتب : وعليكم السلام
عن طريقة الدالة LoadLibrary
كود :
begin
hmod := LoadLibrary('kernel32.dll');
if (hmod <> 0) then begin
GetDType := GetProcAddress(hmod, 'GetDriveTypeA');
if (@GetDType <> nil) then begin
DriveType := GetDType('c:\');
ShowMessage('Drive Type is : ' + IntToStr(DriveType));
end
else
ShowMessage('GetProcAddress failed');
FreeLibrary(hmod);
end
else
ShowMessage('LoadLibrary Failed!');
end;
كل من 1 user says قال شكرا ل محمودد على المشاركة المفيدة1 user says Thank You to محمودد for this post
• ELARAPY
المشاركات : 654
المواضيع 34
:
: 106
الإنتساب : Aug 2010
03-04-2022, 04:36 PM
(آخر تعديل لهذه المشاركة: 03-04-2022, 04:42 PM بواسطة Agmcz.)
عذرا الدالة LoadLibrary تستخدم لتحميل المكتبة إلى الذاكرة.
إستخدم GetModuleHandle
كود :
function CheckDLLIsLoaded(DllName: PChar): Boolean;
begin
Result := GetModuleHandle(DllName) <> 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if CheckDLLIsLoaded('TestDLL.dll') then
ShowMessage('This library is loaded');
end;
سبحان الله وبحمده سبحان الله العظيم
كل من 2 users say قال شكرا ل Agmcz على المشاركة المفيدة2 users say Thank You to Agmcz for this post
• محمودد, ELARAPY
المشاركات : 143
المواضيع 4
:
: 26
الإنتساب : Feb 2022
كود :
function IsLibraryInstalled(const LibFileName: string): Boolean;
{Checks if a library with name LibFileName is installed.}
var
DLLHandle: Windows.THandle; // handle to DLL
begin
// Try to load DLL
try
DLLHandle := SysUtils.SafeLoadLibrary(LibFileName);
except
DLLHandle := 0;
end;
// Check if DLL has been loaded
Result := DLLHandle <> 0;
if Result then
Windows.FreeLibrary(DLLHandle);
end;