با سلام خدمت دوستان.
مي خواستم بدونم كه فايل هاي Dll در دلفي به چه كار مي آيد واگر مي شه توضيح مناسبي در ايم مورد بگين. ممنون.
با سلام خدمت دوستان.
مي خواستم بدونم كه فايل هاي Dll در دلفي به چه كار مي آيد واگر مي شه توضيح مناسبي در ايم مورد بگين. ممنون.
فایل های DLL یا Dinamic Link Library شامل یکسری توابع و کدهای زبان ماشین (کامپایل شده) هستند.
فرض کن تابعی رو برای محاسبه تاریخ شمسی از قمری نوشتی و نمیخوای کسی الگوریتم کارت رو بفهمه (!!!) اون تابع رو در یک DLL ذخیره میکنی و نحوه استفاده از اون (نام تابع،پارامترها و....) رو معرفی میکنی و اونو به دوستت می فروشی تا بدون اینکه از الگوریتم کارت سر در بیاره بتونه از اون تابع استفاده کنه !
البته این یه مثال بود !
بعضی توابع و فایل مهم که در برنامه لازمه هم روی سیستم به صورت DLL هستند.
مثلا برنامه هایی که با دلفی مینویسی از توابع خاصی از سیستم عامل ویندوز استفاده میکنن که در DLL هایی مثال Kernel32.dll و user32.dll و.... قرار دارن.
توضیحش مفصله !
با سلام خدمت دوستان.
ادميرال جان اولا لطف كردين كه من رو راهنمايي كردين. حالا اگه امكانش هست بگين كه چطوري مي شه يك فايل دي ال ال ساخت و از آن استفاده كرد؟
يك چيزه ديگه كه من تاپيك هاي ديگه هم زدم. چرا به آنها جواب نمي دهيد؟
ممنون.
سلام دوست عزیزبا سلام خدمت دوستان.
ادميرال جان اولا لطف كردين كه من رو راهنمايي كردين. حالا اگه امكانش هست بگين كه چطوري مي شه يك فايل دي ال ال ساخت و از آن استفاده كرد؟
دلفی رو باز کنید و از منوی File -> New->Other گزینه Dll wizard رو انتخاب کنید.
حالا قبل از Begin فانکشن ها و پروسیجرهای مورد نظر خودتون رو بنویسید.
حالا بعد از تعریف توابع و قبل از begin بنویسید Exports و بعدش نام توابع رو با کاما از هم جدا کنید و آخرش هم سمی کالن بزارید.مثلاً:
حالا پروژه رو Save کنید و یک فایل DLL هم توی پوشه محل ذخیره بوجود میاد !کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این روش ساخت DLL بود. اگه روش فراخوانیش رو هم خواستی بگو تا بنویسم.
دو تا احتمال داره :يك چيزه ديگه كه من تاپيك هاي ديگه هم زدم. چرا به آنها جواب نمي دهيد؟
ممنون.
یا عنوان تاپیک توجه من رو جلب نکرده!
یا بلد نبودم ! (این یکی احتمالش بیشتره!)
با سلام خدمت دوستان.
ادميرال جان لطف كنيد و اين موضوع را تا جايي كه به درد بخوره ادامه بدهيد ممنون مي شم.
ممنون.
سلام
روش ایجا فایل DLL رو که گفتم حالا می مونه روش فراخوانی یک تابع یا پروسـجـر از داخل فایل DLL :
باید در قسمت تعریف توابع برنامه (بعد از implementation) امضای کامل تابع رو بنویسید.
که امضای تابع شامل نام + پارامترها + نوع بازگشتی میشه.
بعد نوع فراخوانی رو مشخص میکنید که میتونه StdCall یا Register و ... باشه.
بعد هم با عبارت External مشخص می کنید روال باید از کدوم DLL لــود بشه.
نتیجه یه چیزی شبیه این میشه :
توی دلفی اگه نوع فراخوانی رو مشخص نکنی به طور پیش فرض Register در نظر گرفته میشه.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید.
با سلام خدمت دوستان.
ادميرال جان اين كارهايي كه گفتي كردم ولي دفعه اول جواب داد و يك فايل Dll درست كرد ولي دفعات بعد چهار فايل ذخيره مي كرد كه هيچ كدام Dll نبود. چند بار هم امتحان كردم .اگه مي شه بگو مشكل كجاست؟ مطلب ديگه اين كه در مورد نوع فراخواني هم بيشتر توضيح بده؟
بعد از اینکه Save رو زدی یکبار هم Run رو بزن.(کلید F9)ادميرال جان اين كارهايي كه گفتي كردم ولي دفعه اول جواب داد و يك فايل Dll درست كرد ولي دفعات بعد چهار فايل ذخيره مي كرد كه هيچ كدام Dll نبود. چند بار هم امتحان كردم .اگه مي شه بگو مشكل كجاست؟
اصلاً نوع فراخوانی رو ننویس خودش پیش فرض Register هست و لازم نیست کار خاصی انجام بدی.مطلب ديگه اين كه در مورد نوع فراخواني هم بيشتر توضيح بده؟
با سلام خدمت دوستان.
ادميرال جان دستت درد نكنه از اين كه راهنماييم كردي.
ولي وقتي كه مي خواهم كه برنامه را اجرا كنم يك پيغام خطا مي ده به اين مفهوم.
Can not Debug project unless a host application is defined. use the run|parameters... debug box.
كلا براي اطلاعات عمومي گفتم كه نوع فراخواني چي هست و چي كار مي كنه؟اصلاً نوع فراخوانی رو ننویس خودش پیش فرض Register هست و لازم نیست کار خاصی انجام بدی.
ممنون.
Last edited by soltanmahdi; 10-11-2006 at 16:31.
طبیعیه، چون این فایل اجرایی نیست که اجرا بشه.فقط واسه این گفتم که فایل DLL رو بسازه. فایل DLL رو ساختش ؟ادميرال جان دستت درد نكنه از اين كه راهنماييم كردي.
ولي وقتي كه مي خواهم كه برنامه را اجرا كنم يك پيغام خطا مي ده به اين مفهوم.
Can not Debug project unless a host application is defined. use the run|parameters... debug box
باید با اسمبلی آشنایی داشته باشی تا اساسی مفهومش رو متوجه بشی.كلا براي اطلاعات عمومي گفتم كه نوع فراخواني چي هست و چي كار مي كنه؟
اینا رو بخون( از Help دلفی) :
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by Admiral; 10-11-2006 at 18:00.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)