PDA

View Full Version : سوال: آیا می توان از DLL یک "نوع" Export کرد؟



یوسف زالی
جمعه 01 مهر 1390, 03:37 صبح
با سلام.
سوال من مربوط به این هست که مثلا در یک DLL یک فرم که روش یک شی هست گذاشتیم.
حالا آیا راهی وجود داره که بشه به اون شی دسترسی پیدا کرد؟
یا آیا راهی وجود داره که بشه یک "نوع" در DLL تعریف کرد و از اون دز بیرون استفاده کرد؟
مثلا یک دیتاماژول در یک DLL وجود داره و یک ADOTable در اون دیتاماژول ...
حالا می خواهیم از برنامه استفاده کننده از اون DLL بشه خصوصیات اون ADOTable رو دست زد و از اونها استفاده کرد.
می دونم که این قضیه قوانین کپسوله سازی رو ممکنه نقض کنه اما متاسفانه برنامه ای دارم که مجبورم دیتاماژول هاش رو در DLL جدا قرار بدم. مشکلم اینجاست که چیزی حدود 60 تا فرم دارم که از اشیای درون دیتاماژول مستقیما استفاده کردن..

ممنون میشم که دوستان مثل همیشه به بنده لطف داشته باشند.

vcldeveloper
جمعه 01 مهر 1390, 11:06 صبح
در DLL استاندارد ویندوز نمی تونید نوع داده (مثل کلاس، رکورد، و غیره) Export کنید، اما می تونید یک نمونه شی از اون کلاس یا رکورد را به عنوان خروجی یکی از توابع export شده داشته باشید. البته در اون صورت هم باید اون نوع داده هم در DLL و هم در برنامه فراخوان DLL تعریف شده باشه، و البته مسائل مربوط به مدیریت حافظه آن هم مطرح هست، و به طور کلی توصیه نمیشه.

غیر از اون، BPL ها در دلفی هستند که نوع خاصی از DLL محسوب میشند، و میشه ازشون نوع داده استخراج کرد. البته Package ها هم دردسرهای خودشان را دارند.