PDA

View Full Version : چگونه یک برنامه پلاگین خور بنویسیم



saeed-esfandi
سه شنبه 12 مرداد 1389, 16:10 عصر
سلام دوستان
من میخوام یه برنامه بنویسم که قابلیت اضافه شدن پلاگین رو داشته باشه
مثلا یه ماشین حساب ساده که بشه قابلیت هایی مانند محاسبه انتگرال رو به صورت پلاگین بهش اضافه کرد
اگه کسی ایده ای در این مورد داره لطفا کمک کنه
ممنون:لبخندساده:

Nima_NF
سه شنبه 12 مرداد 1389, 17:27 عصر
برنامه خود را طوری بنویسید که هنگام شروع همه dll های موجود در فولدر مشخص (مانند فولدر plugin) را جستجو کند و همه را load کند.

سپس خودتان یک الگو برای dll تعیین کنید که main و مشخصات شروع مورد نظر برنامه شما را داشته باشد و در اختیار کسانی قرار دهید که قرار هستند برای شما Plugin بنویسند، (یعنی dll با کدهای خودشان بنویسند)

saeed-esfandi
چهارشنبه 13 مرداد 1389, 13:16 عصر
ممنون از پاسختون
ولی حالا اگه نخواهیم از dll استفاده کنیم چی؟:متفکر:
آخه من بیشتر با لینوکس کار میکنم و نمی خوام از dll استفاده کنم

Nima_NF
چهارشنبه 13 مرداد 1389, 14:24 عصر
در لینوکس هم به این کتابخانه ها Shared Libraries می گویند و معمولا پسوند آن ها .so هست.
همانند dll ها در ویندوز می توانید آن ها را بسازید و همان کار را انجام می دهند.

نخوه نوشتن کتابخانه ها در لینوکس:
http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html

کتابخانه ها چیزی نیستند که یک برنامه نویس بخواهد از آن ها فرار کند، شما هنگام برنامه نویسی اگر قرار نیست خودتان آن ها را بنویسید، حتما از آن هایی که توسط دیگران نوشته شده است در حال استفاده هستید (برای توابع مختلف).

با این حال اگر قرار نیست به این شکل plugin بسازید، می توانید یک پنجره Editbox درست کنید که امکان گرفتم کدهایی در سطح ساده (اسکریپت) داشته باشد و برنامه شما آن ها را بتواند اجرا کند. یا خودتان باید زبان را طراحی کنید یا از زبان های اسکریپتی کنونی استفاده کنید که امکان کامپایل runt-time را دارا می باشند.

saeed-esfandi
چهارشنبه 13 مرداد 1389, 17:49 عصر
یعنی ما یه کتابخانه نداریم که بین لینوکس و ویندوز مشترک باشه که بشه یه برنامه پلاگین خور قابل حمل باهاش نوشت:اشتباه:

حامد مصافی
چهارشنبه 13 مرداد 1389, 19:13 عصر
یعنی ما یه کتابخانه نداریم که بین لینوکس و ویندوز مشترک باشه که بشه یه برنامه پلاگین خور قابل حمل باهاش نوشت:اشتباه:

ابتدا بايد نوع plugin را مشخص كنيد كه جناب نيما 2 روش را توضيح دادند، اگر قرار باشد برنامه نويسان بعد از شما پلاگين ها را كامپايل كنند بديهيست كه بايد براي هر سيستم عامل جداگانه اين كار را انجام دهيد.
البته در مورد نياز هاي محدودي كه با كد نويسي قابل رفع است مي توانيد از QtScript در Qt استفاده كنيد (مانند amarok) براي راهنمايي بيشتر اجازه بدهيد در مورد نياز شما بيشتر بدانيم، يك پلاگين در برنامه شما بايد تا چه حد امكانات داشته باشد؟ كليت برنامه شما چيست؟