PDA

View Full Version : توضیح درباره این واژه ها



forogh68
شنبه 10 مرداد 1394, 22:11 عصر
سلام. وقت بخیر.
عذر می خوام میشه این گزینه ها رو توضیح بدید و همچنین تفاوت هاش رو بفرمایید و همچنین اون کلماتش مخفف رو بگید؟
win32 console application
win32 application
ATL
MFC
CLR
C++/CLI

amirtork
شنبه 10 مرداد 1394, 23:50 عصر
سلام.
win32 console application، در واقع یک نرم افزار عموما ساده ای هست که ورودی و خروجی اون از طریق کنسول انجام میشه و عموما برای انجام کار های کوچک و یا به صورت موقتی و برای تست کردن کاربرد بخش هایی از پروژه های بزرگتر به کار میره.
در مورد win32 application ، محیطی هست که به شما این امکان رو میده با استفاده از Windows API ها و یا .NET FrameWork محیطی رو به همراه GUI طراحی کنید. البته این روش مستقل از سکو نیست و منحصرا به MS Windows مربوط است.
در مورد ATL که مخفف ترکیب Active Template Library هست، همونطور هم که از اسمش معلوم هست، مجموعه ای از کلاس ها بر پایه ی Template هست، که به شما این اجازه رو میدن برنامه ی خودتون رو راخت تر و با امکانات بیشتری طراحی کنید، این اجازه رو به شما میده تا بتونید از کامپوننت های ActiveX هم استفاده کنید و ...
MFC یا همون Microsoft Foundation Classes ا یک سری کلاس هایی هستند بر پایه ی پیندوز که در واثغ اونها هم که کمک میکنند.
CLI یا همون Command Line Interface همانطور که از اسمش هم معلوم هست، رابطی هست برای کاربر
CLR هم مخفف Command Line RunTime هست که به اجرای برنامه ها کمک میکنه.

forogh68
جمعه 13 شهریور 1394, 16:43 عصر
عذرخواهی می کنم میشه واضح تر بگید. اگر با مثال بفرمایید که دیگه خیلی بهتره!

amirtork
شنبه 14 شهریور 1394, 00:04 صبح
سلام،
از اونجایی که من توی توضیح دادن بعضی چیز ها ضعف دارم :-) بنابراین اگر جایی از مطالب رو متوجه نشدید، سوال اون بخش رو دوباره مطرح کنید :-) احتمالا مشکل از توضیحات من هست.
win32 console application در واقع مناسب برنامه هایی هست که از گرافیک استفاده نمیکنن، تصویری نمایش نمیدن و ... ، عموما بر پایه ی متن هستن ولی میتونن از رنگ استفاده کنن، در مورد مثال هم، معروف ترین هاش مثل command prompet ویندوز، برنامه ی Far manager یا Midnight commander هستن. که command prompt در این بین از همه معروف تر هست و پرکاربرد تر!(البته powerShell هم هست)

Win 32 Application به برنامه قابلیت استفاده از گرافیک رو میده و یا استفاده از audio و vidioe در برنامه ها و ... . رابط کاربری این نوع برنامه ها بر خلاف console اپلیکیشن ها، گرافیکی هست. برای مثال، بازی warcraft || از win32 استفاده میکنه،

ATL به نوشتن برنامه هایی بر پایه ی COM (https://www.microsoft.com/com/default.mspx) کمک میکنه و قابلیت استفاده از کنترلر های ActiveX رو هم در اختیار قرار میده.(تحت win32) مثال این برنامه ها هر برنامه ای هست که از ActiveX استفاده میکنه! مثال خاصی به ذهنم نمیرسه!

MFC در واقع یک سری کلاس ها و کامپوننت های آماده ای رو در اختیار قرار میده که این کامپوننت ها و کلاس ها همه بر اساس OOP و با استفاده از cpp ساخته شدن، عموما برنامه های هتلداری و کتابخانه ای که نوشته شده با استفاده از این مورد هست. مثال خوبی به ذهنم نمیرسه، مثلا شرکت kookam ( در مورد نحوه ی نوشتن اسم شرکت مطمن نیستم) برای مدیریت باطری های قوی نصب شده ی خودش از برنامه ای که با MFC نوشته شده استفاده میکنه.

CLI هم همونطور که قبلا گفتم رابط کاربری متنی هست! احتمالا از برنامه ی DiskPart استفاده کردید، این برنامه از CLI استفاده میکنه.

CLR شبه برنامه ای هست که در زمان اجرا ی برنامه هایی که از اون استفاده میکنن اجرا میشه، و به نوشتن راحت تر کد ها کمک میکنه.یکی از کارایی هاش مثلا این هست که Garbage ها رو به طور اتوماتیک حذف میکنه، در واقع بیشتر به نوشتن برنامه کمک میکنه! و در کنار .NET FrameWork استفاده میشه.

کامبیز اسدزاده
شنبه 14 شهریور 1394, 10:24 صبح
به توضیحات دوستمون این رو اضافه کنم که شاید لازم باشه تمامی این نوع پروژه ها در انحصار Microsoft هستند و به هیچ عنوان به صورت رسمی جزو کتابخانه های اصلی C++ نیستند و متاسفانه بسیاری از برنامه نویسان در ابتدا به اشتباه گمان میکنند C++ یعنی همین ATL , Win32 و ... در حالی که چنین نیست.

بنابراین در Visual Studio برای ایجاد پروژه خام و استاندارد برای C++ بهتر است از گزینه Empty Project استفاده کنید و فایل ها رو خودتون ایجاد کنید زیرا این قوائد و مواردی که ذکر شده اند بر اساس کتابخانه های مایکروسافتی برای توسعه در بستر ویندوز آماده شده اند و اگر شما کدی رو مینویسی تحت این موارد اون کد وابستگی کامل داره با API های ویندوز و نباید انتظار داشته باشید در پلتفرم های دیگه هم اون کد رو مجددا استفاده کنید.

کتابخانه های رسمی C++ در اینجا ذکر شده است : http://en.cppreference.com/w/cpp/links/libs