ورود

View Full Version : dynamic link library



1010011010
چهارشنبه 18 دی 1392, 11:50 صبح
در نوع کتابخانه های داینامیک یه فایلی از نوع dll در یک مسیری از هارد دیسک و در یک پوشه قرار می گیره که مثلا اسمی داره مثل lib.dll ... حالا ما یک برنامه مینویسیم که میخواد از توابع موجود در این dll استفاده کنه، در واقع در هنگام اجرا میخواد با این کتابخانه لینک بشه.
چیزی که من میخوام بدونم اینه که برنامه ما چگونه به سیستم عامل می فهمونه که در فلان مسیر هارد دیسک یک فایلی وجود داره به اسم lib.dll که من میخوام که الان باهاش لینک بشم :لبخند:
در حالت استاتیک ما با یه دستوری از لینکر میخوایم که برنامه ما رو با فلان فایل کتابخانه لینک کن.
در واقع آیا تصور من درسته که برنامه از طریق api های ویندوز از پارامترهایی استفاده میکنه که در اون پارامترها مثلا مسیر فایل و نام فایل قید میشه؟

Delphi Coder
چهارشنبه 18 دی 1392, 19:40 عصر
در ویندوز همه کارها توسط API ها انجام میشه. در حالت دینامیک مستقیما نام و مسیر رو خودتون به API میدید و در حالت استاتیک هم این نام و مسیر در هدرهای فایل اجرایی نوشته میشه که لودر وظیفه لود کردن اون رو انجام میده. البته معمولا مسیر مستقیم نمیدن به فایل فقط اسم فایل رو تایین میکنند که این باعث میشه دایرکتوری جاری دایرکتوری ویندوز و system32 و path رو به دنبال فایل بگرده در صورتی که در مسیر خاص مشکلاتی میتونه به وجود بیاد.