نقل قول نوشته شده توسط 1010011010 مشاهده تاپیک
در قسمت نوار ابزار یک منوی کشویی هست که وقتی ماوس رو روش نگه میداری در توضیحش میزنه Solution Platforms که هر نوع پروژه ایی در سی پلاس پلاس درست میکنم بطور پیش فرض win32 هست. وقتی هم روش کلیک میکنم دو تا گزینه هست یکی win32 و دیگر ... Configuration Manager .
اولا بفرمایید منظور از Solution Platforms چیه؟ و بعد چرا وقتی پروِژه ایی از نوع CLR در سی پلاس پلاس میسازم باز این قسمت win32 مینویسه؟
آخه تصور من از win32 اینه که قراره برنامه ما Native Code باشه! اگر پروژه ایی از نوع CLR از پلت فورم دات نت استفاده میکنه دیگه win32 چه صیغه ای هست؟



در این نکته بنده ذره ایی شک ندارم، از C++‎‎.NET متنفرم. در واقع با اینکه اصولا در عمل در زمینه برنامه نویسی مبتدی حساب میشم ولی شدیدا اعتقاد دارم C++‎‎.NET اصولا فراتر از یک فورمالیته نیست! همونطور که شما برای یادگیری زبان از نرم افزار دیکشنری استفاده میکنید و در بانک اطلاعاتی این دیکشنری لغاتی وجود داره که عمرا مورد استفاده بگیره در مکالمه انگلیسی! ولی فورمالیته ها باید رعایت بشن دیگه!
فلسفه وجودی C++‎‎.NET هم از نظر من اینه که در برنامه نویسی ++C نه وجود نداشته باشه. هر چند پیش نیازهای من در برنامه نویسی کمتر از اونی هست که در این زمینه ابراز نظر کنم ولی احساس کنونیم بود دیگه.
در رابطه با اینکه Solution Platform چیست ؟

وقتی شما پروژه ای رو ایجاد میکنید میتونید طبق نوع سیستم عامل یعنی ساختار و معماری سیستم عامل پروژتون رو کامپایل کنید به عنوان مثال اگر شما از سیستم عامل ویندوز 32 بیتی که شامل خانواده x86 میشه استفاده کنید در این صورت برای کامپایل پروژتون باید اون رو از این قسمت روی Win32 که مختص ویندوز هست استفاده کنید البته منظور از Win32 همان x86 هست فقط اسمش در پروژه های C++‎‎ از x86 به Win32 تغییر کرده چون در Visual Studio زبان C++‎‎ یجورایی از حالت فرمالیته در اومده کلا مایکروسافت برای خودش یه استانداردی درست کرده و بر اساس قوانین خودش نام گزاری میکنه.

به طور کلی تمامی برنامه ها چه در C++‎‎ چه در C#‎‎ و VB در حالت پیشفرض به صورت x86 کامپایل می شوند لذا شما میتونید در صورت مایل بودن برای تغییر نام نوع معماری و یا افزودن معماری دیگری مثل x64 به قسمت Configuration Manager مراجعه کنید.

و اما در مورد نوع پروژه Win32 و بحث CLI :

ببینید به طور کلی در VS شما میتونید انواع پروژه های زیر رو برای زبان C++‎‎ در نظر بگیرید :

پروژه از نوع Win32 : این نوع پروژه شامل کتابخانه ها و API های مختص ویندوز است. (Native)
پروژه از نوع MFC : شامل کتابخانه های جمع آوری شده و منحصربفرد مایکروسافت است. (Native)
پروژه از نوع ATL : اینم مثل نوع Win32 شامل توابع و API های مختص ویندوزی است.(Native)
پروژه از نوع CLR : این نوع پروژه بر پایه کتابخانه ها و چهارچوب دات نت فریم ورک است (Managed)

تمامی موارد ذکر شده کاملا وابسته و در انحصار ویندوز هستند در بین اینها استفاده از MFC و Win32 بهتر هستند و همچنین CLR از نظر من یک اشتباه محضه چون C#‎‎ نسبت به این نسخه از C++‎‎ خیلی بهتر عمل میکنه و باید بگم این نوع از پروژه اصلا Native نیست.

در رابطه با C++‎‎.NET باید بگم واقعا غیرقابل قبوله چون وقتی قراره برنامه Managed نوشته بشه که وابسته ویندوز هم هستش در این صورت C#‎‎ خیلی بهتر و امکانات جالبتری نسبت به C++‎‎.NET داره من خودم شخصا از C++‎‎ در هیچ یک از انواع ذکر شده استفاده نمیکنم زیرا اگه هدف نوشتن برنامه با C++‎‎ به صورت استاندارد باشه در این صورت توصیه میکنم از Empty Project در هنگام ایجاد پروژه استفاده کنید تا بدون وابستگی به API و توابع ویندوزی پروژتون رو خودتون ایجاد کنید.