PDA

View Full Version : نصب DLL



barnamenevisjma
چهارشنبه 01 دی 1389, 19:50 عصر
سلام

در پروژه ای با یه سری عامل (Agent) که هر کدوم مستقل هستند، کار می کنید. این برنامه باید این قابلیت رو داشته باشه که عامل جدید رو (که یه فایل DLL هستش) نصب کنه. چطور میشه این کار رو انجام داد؟( عامل باید کارش رو در thread جداگانه ای شروع کنه.)
در چنین برنامه هایی، کلا چه کارهایی باید انجام شه؟ آیا DLL مورد نظر هم باید ساختار خاصی داشته باشه؟

barnamenevisjma
جمعه 03 دی 1389, 00:38 صبح
کسی نیست که جواب بده!!!!
لطفا راهنمایی بفرمایید. یا اگر واضح نیست، لااقل بگید تا مسئله رو واضح تر بیان کنم.
با تشکر

sia_2007
جمعه 03 دی 1389, 13:15 عصر
DLL ها Managed اند ؟

barnamenevisjma
جمعه 03 دی 1389, 13:24 عصر
DLL ها Managed اند ؟

منظورتون چیه؟

sia_2007
جمعه 03 دی 1389, 16:59 عصر
اگه Managed باشند؛ یکی از ساده ترین راه ها ( نه لزوما صحیح ترین ) اینه که؛ یک یا چند Interface رو در اختیار بقیه بذاری؛ بعد هر کسی اون اینترفیس یا اینترفیس ها رو محقق کرد؛ DLL اش رو بذاره تو فولدری که میگی
بعد تک تک DLL ها رو با Reflection بگردی؛ و تون Interface رو Invoke کنی
در مورد Threading هم میتونی خروجی متدهای اینترفیس ات رو Task بذاری؛ تا بتونی بعد از درآوردن کل Task های یه اسمبلی ( DLL )؛ اونها رو Start کنی که میشه MultiThread یا این که همه رو Parallel اجرا کنی.
در کل Multi Thread کردن این قضیه یه کم بسته به نوع کارت میتونه پیچیده بشه؛ اما اگه Task برگردونی؛ تسلط بهتری رو قضیه داشته باشی؛ مثلا فرض کن میخوای 4 تا Task رو به صورت Multi Thread اجرا کنی؛ وای میخوای خاتمشون به ترتیب باشه و ...
---
اما اگه DLL هات Managed نیستند؛ من نمیتونم راهنماییت کنم.
---
راستی راه حل صحیح روش بالا Add In Framework موجود تو Net Framework. هستش
موفق باشی

sia_2007
جمعه 03 دی 1389, 17:01 عصر
راستی منظور من از Managed بودن اینه که تحت یه Framework اجرا میشن ؛ و اون FW مسئول مدیریت حافظه و ... بقیه است.
البته تعریف صحیحش این نیست؛ و البته Java هم Managed هست؛ ولی باز منظور من اسمبلی های Net. بود که مثلا با #C نوشته شدن.
امیدوارم با این فرض مسخره کسی رو به اشتباه ننداخته باشم

barnamenevisjma
جمعه 03 دی 1389, 20:38 عصر
1- این dllها .Netی هستن و با C# نوشته شدن.(با این حساب Managed به حساب میان. درسته؟)
2- چطور میشه ار عاملی که توسط این dll تولید میشه، نمونه سازی کرد و متدهاش رو صدا زد؟(این کار باید زمان اجرای برنامه صورت گیرد.)
3- از راهنماییتون سپاسگذارم.

sia_2007
شنبه 04 دی 1389, 16:59 عصر
برو دنبال Reflection
این دیگه یه بحث دیگه است ! ( آسونه ولی )