• ¡Welcome to Square Theme!
  • This news are in header template.
  • Please ignore this message.
مهمان عزیز خوش‌آمدید. ورود عضــویت


امتیاز موضوع:
  • 13 رای - 2.92 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Title: نحوه نوشتن dll در دلفی 7
حالت خطی
#2
در پست قبلی یاد گرفتیم که چگونه یک dll بنویسیم .dll ای با یک تابع بانام Showhello نوشتیم که یک messageBox با کلمه hello را نشان داد. در این مقاله نحوه استفاده از این dll را در برنامه یاد می گیریم .
استفاده از توابع نوشته شده در dll ، به وسیله برنامه خود را فرا خوانی dll می گویند . همانند تابع که دارای دو step تعریف و فرا خوانی است dll هم دو جنبه تعریف و فراخوانی دارد تعریف dll مقاله قبلی بود و مبحث این مقاله استفاده از تابع قبلی است که همان جنبه فرا خوانی است .

به دوصورت می توان یک dll را از برنامه فرا خوانی کرد :
1 – فرا خوانی به صورت استاتیک
2 - فرا خوانی به صورت پویا یادینامیک

فرا خوانی استاتیک ساده ترین نوع فرا خوانی است و به کد نویسی زیادی احتیاج ندارد . اما در عوض حافظه سیستم را در طول اجرای برنامه اشغال می کند .در مقابل فرا خوانی پویا به چند خط کد نویسی احتیاج دارد اما در عوض حافظه سیستم توسط برنامه نویس می تواند در طول اجرای برنامه به سیستم بر گردانده شود این از مزیت فرا خوانی پویا است.

ابتدا فرا خوانی استاتیک را بررسی می کنیم .
Delphi 7 را اجرا کنید و پروژه جدیدتان را با نام دلخواه در مکان دلخواه ذخیره کنید.سپس یک کپی از dll ای را که قبلا ساختید را در پوشه ای که پروژه تان را ذخیره کردید قرار دهید. البته می توانید dll را در پوشه ی ویندوز یا در پوشه ی system32 نیز قرار دهید این یک مسیر پیش فرض برای سیستم عامل است تا فایل ها ی اجرایی را در آنجا جستجو کند.
در پنجره کد ادیتور بعد از uses و قبل از type هدر تابعی را که در dll تعریف کرده اید .

برای مثال ما خط زیر را قرار دهید:

function showhello:integer ; stdcall; external 'eeuok.dll';

به دو کلمه stdcall و external در تعریف هدر توجه کنید ، stdcall نوع انتقال آرگومان ها را به تابع معین می کند . چند نوع روش انتقال وجود دارد stdcall پارامتر ها را از راست به چپ به تابع ارسال می کند بدون اینکه از رجیستر ها استفاده کند . به دلیل اینکه برنامه اجرایی و تابع فرا خوانی شونده جدا از هم می باشند نحوه ارسال پارامتر ها مهم

است .
External به کامپایلر می گوید که تابع باید از یک dll در حافظه قرار گیرد.در صورتی که dll را در مکانهایی که قبلا گفتم قرار نداده اید ذکر مسیر کامل dll بعد از external ضروری است .


خوب ، کار تمام شد در هر جایی از برنامه که می خواهید می توانید نام تابع را بنویسید و تابع را اجرا کنید .

ما این کار را در رویداد formcreate انجام دادیم:


procedure TForm1.FormCreate(Sender: TObject);
begin
showhello;
end;


سالک : روش دوم را در خود سایت بخوانید. روش اول چون خیلی ساده بود و باعث ایجاد تنوع میشد را نقل کردم. ما تابحال 3 نوع برنامه ایجاد کردیم. کنسولی - ویندوزی - و dll ئی . با مقایسه این 3 نوع برنامه و مشاهده تفاوها و شباهتها حالا بیشتر می دانید که هر کلمه معنای چیست. مثل کلمهlibrary (در پروژه dll ئی ) با program در برنامه ویندوزی در خط اول کد پروژه .
همچنین مثل usesکه در کنسولی چنین است:
uses
SysUtils;
و در نوع dll ئی داریم:
uses
SysUtils,
dialogs,
Classes;
البته dialogs را خودمان اضافه کردیم چون قرار بود dll ما مسیج باکس را نمایش دهد که جلوه ای دیالوگی بود.
و در پروژه ای که میانگین 10 عدد را محاسبه می کرد uses چنین بود:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
 
پاسخ
  


پیام‌های این موضوع
نحوه نوشتن dll در دلفی 7 - توسط Amin_Mansouri - 05-01-2011، 10:03 PM
RE: نحوه نوشتن dll در دلفی 7 - توسط Amin_Mansouri - 05-01-2011، 10:05 PM

موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  سورس کد انتقال فایل به سطل اشغال ( دلفی) Amin_Mansouri 1 6,224 10-08-2022، 06:21 PM
آخرین ارسال: sonusood
  سورس بدست اوردن کلیپ برد ( دلفی ) Amin_Mansouri 1 8,420 10-08-2022، 05:49 PM
آخرین ارسال: sonusood
  دلفی و تلگرام h_mohamadi 2 5,277 04-24-2017، 12:14 AM
آخرین ارسال: shilanaseri
  رسم نمودار در اکسل از طریق دلفی Saeed7007 1 6,810 08-14-2014، 06:11 PM
آخرین ارسال: Amin_Mansouri
  سورس کد بدست اوردن اطلاعات هارد دیسک (دلفی) Amin_Mansouri 1 8,793 07-30-2014، 05:45 PM
آخرین ارسال: dehqan_mehdi
  ۳۵۰ سورس کد دلفی (دلفی رو از ابتدا تا حرفه ای شدن یاد بگیرید) Amin_Mansouri 11 33,896 01-31-2014، 04:27 PM
آخرین ارسال: Amin_Mansouri
  بارگذاری و یا نمایش تصویر فرمت jpg (دلفی) Amin_Mansouri 2 10,947 08-23-2013، 10:06 PM
آخرین ارسال: mo_coders
  بدست اوردن لیست درایورهای موجود بر روی سیستم توسط API (دلفی) Amin_Mansouri 0 5,131 08-17-2013، 09:56 AM
آخرین ارسال: Amin_Mansouri
  دانلود سورس کد استفاده از نقشه گوگل در دلفی Amin_Mansouri 0 7,024 08-17-2013، 09:44 AM
آخرین ارسال: Amin_Mansouri
  سورس کد شناسایی مرورگرهای نصب شده بر روی سیستم عامل (دلفی) Amin_Mansouri 0 5,263 08-17-2013، 09:35 AM
آخرین ارسال: Amin_Mansouri

پرش به انجمن:


Browsing: 2 مهمان