ورود

View Full Version : نوشتن برنامه های مبتنی برپلاگین بدون با استفاده از پیش فرض های دلفی و عرضه SDK برای آن



N30TheM4TRIX
یک شنبه 22 مرداد 1391, 13:25 عصر
سلام
عنوان گویای همه چیز هست دیگه.
نمی خوام از هیچ ابزار و کامپوننت اضافی استفاده کنم و باید برانامه رو خودم از پایه بنویسم.

لطفاً راهنمای کنین

SAASTN
یک شنبه 22 مرداد 1391, 14:13 عصر
http://barnamenevis.org/showthread.php?309318-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A7%DB%8C-%D8%A8%D9%87-%D8%B1%D9%88%D8%B4-%D9%85%D8%A7%DA%98%D9%88%D9%84%DB%8C&highlight=%D8%A7%D9%81%D8%B2%D9%88%D9%86%D9%87

بهروز عباسی
پنج شنبه 02 شهریور 1391, 16:07 عصر
درود
من این برنامه (چندی کد) رو نوشتم برای کار با پلاگین در برنامه بدون استفاده از کامپوننت.
ولی یک مشکل دارم
نمی دونم چطوری باید مقداری رو برای پردازش به پلاگین بدم و نتیجه رو در برنامه نمایش بدم.
در حال حاظر فقط مقادیر رشته رو از پلاگین می خونه و در برنامه نمایش میده.
برای استفاده از کد به پوشه SDK برید و dll رو ایجاد کنید و در پوشه Plugins کنار فایل exe قرار بدید و بعد برنامه رو اجرا کنید

لطفاً کمک کنید.

بهروز عباسی
پنج شنبه 02 شهریور 1391, 16:12 عصر
فایل dll در مسیر Bin\Plugins موجود هستش .

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

با تشکر

BORHAN TEC
جمعه 03 شهریور 1391, 10:53 صبح
طبیعی است که اگر خودتون بخواهید چرخ را از ابتدا بسازید زیاد نمی توانید کاری را از پیش ببرید و پلاگین های شما قابلیت های کمی را در اختیار شما قرار خواهند داد. ابزار های مختلفی برای ساخت برنامه های مبتنی بر پلاگین وجود دارند مثل استفاده از JVCL که رایگان است و یا استفاده از یک ابزار تجاری ولی بسیار قدرتمند مثل RemObjects Hydra که اتفاقاً چند وقت پیش یک فیلم آموزشی را هم در این مورد در آدرس زیر منتشر کردم:
http://www.irstu.com/?p=1748

بهروز عباسی
شنبه 04 شهریور 1391, 21:50 عصر
طبیعی است که اگر خودتون بخواهید چرخ را از ابتدا بسازید زیاد نمی توانید کاری را از پیش ببرید و پلاگین های شما قابلیت های کمی را در اختیار شما قرار خواهند داد. ابزار های مختلفی برای ساخت برنامه های مبتنی بر پلاگین وجود دارند مثل استفاده از JVCL که رایگان است و یا استفاده از یک ابزار تجاری ولی بسیار قدرتمند مثل RemObjects Hydra که اتفاقاً چند وقت پیش یک فیلم آموزشی را هم در این مورد در آدرس زیر منتشر کردم:
http://www.irstu.com/?p=1748
در اینجا ساخت دوباره چرخ ممکنه جالب باشه .
برنامه جناب N30TheM4TRIX (http://barnamenevis.org/member.php?258686-N30TheM4TRIX) رو نمی دونم اما برنامه من در این مورد کوچکترین از این حرفاست و خواستم خودم این قسمت رو پیاده سازی کنم.
چون این کار باعث میشه من تازه کار با این مفاهیم بهتر آشنابشم.با این حال اگه ممکنه در این باره کمکی بکنید.
بابت اون آموزش هم خیلی ممنون.

Felony
یک شنبه 05 شهریور 1391, 06:32 صبح
چون این کار باعث میشه من تازه کار با این مفاهیم بهتر آشنابشم.با این حال اگه ممکنه در این باره کمکی بکنید.
اول مشخص کن هدف برنامت از امکان استفاده از پلاگین چیه ؟ نهایتا میخوای چی کار کنی ؟
یک عدد میان برنامه و پلاگینت رد و بدل بشه ؟ رشته رد و بدل بشه ؟ عکس ؟ چی ... ؟!

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

بهروز عباسی
یک شنبه 05 شهریور 1391, 11:17 صبح
درود به همه

اول مشخص کن هدف برنامت از امکان استفاده از پلاگین چیه ؟
اینه که تا حدودی امکان گسترش کارای برنامه وجود داشته باشه.

نهایتا میخوای چی کار کنی ؟
یک عدد میان برنامه و پلاگینت رد و بدل بشه ؟ رشته رد و بدل بشه ؟ عکس ؟ چی ... ؟!

فقط رشته و عدد (عدد رو بصورت رشته هم میشه رد و بدل کرد --->> فقط رشته).


کلاً از نظر پلاگین چیزی مثل PEID نه بیشتر نه کمتر.

Felony
یک شنبه 05 شهریور 1391, 20:47 عصر
براتون یک نمونه نوشتم ، تو DLL نمونه ثابت رشته ای به صورت زیر تعریف شده :

FuctionNames: string = 'Time,Date,About';

این ثابت حاوی لیست توابع Export شده توسط DLL هست که با , از هم جدا شدند و تو برنامه Host Application از این نام ها استفاده میشه ، بنابراین هر تابعی که تو DLL اضافه میشه باید نامش در این رشته آورده بشه تا برنامه بتونه پیداش کنه .

این ساده ترین موردی بود که میشد پیاده کرد ، حالا اگر میخواین کار رو حرفه ای تر انجام بدید میتونید توسط توابع کتابخانه RTTI یا توابع کتابخانه ImaheHlp لیست توابع Export شده رو به صورت خودکار به دست بیارید و دیگه اون ثابت رشته رو حذف کنید ؛ من بیشتر از این وقت نداشتم روش کار کنم .

بهروز عباسی
دوشنبه 06 شهریور 1391, 10:04 صبح
خیلی ممنون من با این قسمت مشکلی ندارم نمی دونم چطوری یک رشته ازHost Application به dll ارسال کنم.

بهروز عباسی
دوشنبه 06 شهریور 1391, 14:49 عصر
درود و خسته نباشید به همه
(آقا ماهان خیلی خیلی ممنون از کمکت)
مشکلم حل شد(ظاهراً) توی این نمونه میشه یک رشته هم به DLL ارسال کرد .

خواهشاً اگه ممکنه کدها رو نگاه کنید ببینید مشکلی نداره.