ورود

نسخه کامل مشاهده نسخه کامل : منظور از اسمبلی چیست؟



iranch
01-01-2014, 00:09
سلام
منظور از assembly چیه؟ زبان اسمبلی رو نمیگما.میگه کسانی که در یک اسمبلی هستند، دسترسی دارند?>

Msba
01-01-2014, 12:35
بهتر است کمی پیش زمینه بگویم:
1- فرض کنید پروژه ی شما دارای 5 کلاس باشد.
2- پروژه ی شما از نوع اجرایی باشد و خروجی آن یک فایل Exe .
خوب در زمان کامپایل چه اتفاقی می افتد؟ تمام این کلاس ها کامپایل شده و به ازای هر کلاسی که درون یک فایل است یک خروجی کامپایل تولید می شود (در برخی کامپایلر ها پسوند این فایل ها O.* است.) در نهایت به لینکر منتقل می شوند و می شود یک فایل خروجی. خوب این فایل خروجی همان اسمبلی شماست. یعنی تمام عناصری که در یک بخش قرار می گیرند و به تعریفی دیگر (در حالت اجرایی) تمام اجزایی که در یک Process قرار می گیرند. خوب مطمئنا در حالت عادی شما نمی توانید در یک پروسس دیگر دخالت کنید.
در یک بیان دیگر:
اگر یک کلاس internal باشد فقط توسط کد های همان پروژه قابل دسترس هست و نمی توان در پروژه ی دیگر از آن استفاده کرد. در حالتی می توان آن را حالت پیشرفته تری از private دانست.
در بیان دیگر:
در حالتی که پروژه ی شما library باشد و خروجی آن dll نیز همین گونه هست. شما عنصری که متعلق به آن پروژه باشد و internal باشد را نمی توانید در پروژه ی دیگر استفاده کنید. ولی اگر internal نباشد که خوب مشکلی نیست.
در واقع کل مطلب تعریف سطح دسترسی به عناصر هست. حال در یک خروجی DLL و خواه در یک خروجی exe . در نهایت این مسئله زمانی مطرح است که شما قصد reference کردن و یا دسترسی به یک پروسس دیگر را مد نظر داشته باشید.

موفق باشید.