لطفا منو راهنمایی کنید (++c)

m_mx2009

Member
با عرض سلام خدمت تمامی دوستان عزیز.

من دانشجوی رشته برق هستم و حدود دو سه ماهی هست که با console ++C کار میکنم.ولی محیط کنسول یکم خسته کنندس و میخوام که به صورت ویژوال کار کنم.

به نظر شما اگه Win32 کار کنم بهتره یا اینکه برم سراغ MFC ؟

چقدر طول میکشه تا تقریبا یه برنامه نویس نیمه حرفه ای بشم؟

اینم بگم که چند تا پروژه کنسول در حد متوسط نوشتم و استعداد یادگیری برنامه نویسی رو هم دارم!!

ممنون میشم اگه با نظراتتون منو راهنمایی کنید.:rose::rose::oops:
 

the_king

مدیرکل انجمن
با عرض سلام خدمت تمامی دوستان عزیز.

من دانشجوی رشته برق هستم و حدود دو سه ماهی هست که با console ++C کار میکنم.ولی محیط کنسول یکم خسته کنندس و میخوام که به صورت ویژوال کار کنم.

به نظر شما اگه Win32 کار کنم بهتره یا اینکه برم سراغ MFC ؟
به نظر من هیچکدوم، برنامه نویسی ویژوال با ++C نسبتا دشواره، مخصوصا اگه فقط بخواهید روی توابع API یا
به قول شما Win32 تکیه کنید، حرفه ای ها اینکار رو می کنند اما کار هر کسی نیست.

MFC کار رو ساده تر می کنه اما از این به بعد مایکروسافت بیشتر تمرکز اش روی NET Framework. اش خواهد بود و
اگه آینده نگر باشید بهتره که روی MFC خیلی وقت صرف نکنید.

پیشنهاد می کنم که از CLR استفاده کنید، برنامه نویسی ویژوال با Visual C++ CLR به مراتب ساده تره.

چقدر طول میکشه تا تقریبا یه برنامه نویس نیمه حرفه ای بشم؟

اینم بگم که چند تا پروژه کنسول در حد متوسط نوشتم و استعداد یادگیری برنامه نویسی رو هم دارم!!

ممنون میشم اگه با نظراتتون منو راهنمایی کنید.:rose::rose::oops:
این مورد چیزی نیست که بشه تخمین اش زد.
 

m_mx2009

Member
MFC کار رو ساده تر می کنه اما از این به بعد مایکروسافت بیشتر تمرکز اش روی NET Framework. اش خواهد بود و
اگه آینده نگر باشید بهتره که روی MFC خیلی وقت صرف نکنید.

پیشنهاد می کنم که از CLR استفاده کنید، برنامه نویسی ویژوال با Visual C++ CLR به مراتب ساده تره.


این مورد چیزی نیست که بشه تخمین اش زد.

سلام king جان!
میدونی آخه یکی از آشنایان بهم گفت که برای ویژوال ++C یا باید Win32 کار کنی یا MFC و همچنین گفتش که تو کشور ما MFC بیشتر رواج داره و برنامه های قدرتمندی میشه باهاش نوشت!

همچنین گفت که میتونی CLI یا همین CLR کار کنی.ولی من که اصلا ازشون اطلاعی ندارم و نمیدونم چی هستند!!!.
اگه میشه لطفی در حق من بکن و این CLR و Native رو هم برام توضیح بده.چون که به من گفت در محیط NET. امکان توسعه Native نیست.(من اصلا نمیدونم Native چی هست!!فقط بلدم تو محیط کنسول برنامه بنویسم)
در ضمن آیا توابعی که در کنسول استفاده میشه در محیط CLR هم استفاده میشه؟
خیلی ممنون از لطف شما:rose::rose::oops::oops:
 

the_king

مدیرکل انجمن
سلام king جان!
میدونی آخه یکی از آشنایان بهم گفت که برای ویژوال ++C یا باید Win32 کار کنی یا MFC و همچنین گفتش که تو کشور ما MFC بیشتر رواج داره و برنامه های قدرتمندی میشه باهاش نوشت!

همچنین گفت که میتونی CLI یا همین CLR کار کنی.ولی من که اصلا ازشون اطلاعی ندارم و نمیدونم چی هستند!!!.
اگه میشه لطفی در حق من بکن و این CLR و Native رو هم برام توضیح بده.چون که به من گفت در محیط NET. امکان توسعه Native نیست.(من اصلا نمیدونم Native چی هست!!فقط بلدم تو محیط کنسول برنامه بنویسم)
در ضمن آیا توابعی که در کنسول استفاده میشه در محیط CLR هم استفاده میشه؟
خیلی ممنون از لطف شما:rose::rose::oops::oops:
آشناتون درست گفته اند، اما Native بودن و نبودن برنامه هم یکسری مزایا داره و هم یکسری معایب.
با CLR هم میشه برنامه های قدرتمندی رو نوشت، استفاده کردن یا نکردن از MFC پارامتر تعیین کننده ای نیست،
بستگی به توانایی خود برنامه نویس داره که چقدر از امکانات موجود استفاده کنه.

برنامه های Native بعد از کامپایل شدن تبدیل به فایل هایی می شوند که داخلشون کد ماشین قرار داره، یعنی
تنها زبانی که پردازنده کامپیوتر شما می شناسه و می تونه اجرا کنه. نیازی هم به Framework حجیم NET. ندارند.
برنامه نویسی Native دشوار تره، چون از امکانات زبان های Net. که برنامه نویسی رو خیلی ساده تر می کنه
محروم هستید.

اما برنامه هایی که با استفاده از CLR نوشته می شوند موقع کامپایل شدن به زبان ماشین واقعی ترجمه نمی شوند،
برای اینکار یک زبان خاص خودشان را دارند به نام CIL که توسط یک ماشین مجازی مخصوص این زبان اجرا می شوند،
یعنی یک زبانی که برای پردازنده واقعی قابل فهم نیست. این زبان در واقع یک زبان میانی و واسطه است که خودش
برای اجرا شدن باید به زبان ماشین Native تبدیل شود. یکی از دلایل اینکه کد های CLR از کد های Native کند تر
اجرا می شوند همین است که باید برای اجرا شدن توسط پردازنده واقعی به زبان ماشین واقعی ترجمه شوند.

زبان های تحت Net. مثل C++ CLR و #C و VB.Net از کتابخانه ها و امکانات Framework بهره زیادی می برند، برای
همین برنامه نویسی با اونها خیلی ساده تر است. بزرگترین عیب شان هم این است که فقط زمانی برنامه تان
قابل اجرا شدن است که Net Framework. با نسخه مناسب نصب شده باشد.

شما می توانید هم برنامه های ویژوال و هم برنامه های Console ای رو با CLR یا بدون CLR بنویسید اما با CLR
خیلی ساده تر و سریعتر کد نویسی خواهید کرد.
 

m_mx2009

Member
شما می توانید هم برنامه های ویژوال و هم برنامه های Console ای رو با CLR یا بدون CLR بنویسید اما با CLR
خیلی ساده تر و سریعتر کد نویسی خواهید کرد.

ببخشین که من اینقدر سوال می پرسم!!
قسمت اول فرمایشتون رو فهمیدم ولی این قسمت دوم رو کامل متوجه نشدم.یعنی CLR یه نوع کامپایلره ؟ یا یه محیط برنامه نویسیه که با Net. فرق داره؟پس این محیط Net. که من توش برنامه مینویسم جزو کدوم دستس؟

یه سوال دیگه هم الان یادم اومد: من دانشجوی برق - کنترل ، هستم و میخوام بدونم که با #C هم میشه روی IC میکرو ، برنامه نوشت؟اگه جوابتون مثبته ، ه نظرتون بهتره که ++C #C ؟ چون فکر میکنم که #C از ++C آسونتره!!
درضمن آیا در این محیط CLR میشه از کدهای محیط کنسول عینا استفاده کرد ؟یا به مطالعه بیشتری نیاز دارم؟
خیلی ممنون از زحمات شما.:green::green:
 
آخرین ویرایش:

the_king

مدیرکل انجمن
ببخشین که من اینقدر سوال می پرسم!!
قسمت اول فرمایشتون رو فهمیدم ولی این قسمت دوم رو کامل متوجه نشدم.یعنی CLR یه نوع کامپایلره ؟ یا یه محیط برنامه نویسیه که با Net. فرق داره؟پس این محیط Net. که من توش برنامه مینویسم جزو کدوم دستس؟
بله، دقیقا کامپایلر نیست اما کاری که انجام میده یک چیزی تو مایه کامپایلر ها است. CLR برای همه زبان هایی که
تحت Net. اجرا می شوند مشترکه، فرقی نمی کنه که کدوم زبان باشه. همه زبان های تحت Net. بعد از کامپایل کردن
کد شان برای اجرا کردن برنامه به CLR نیاز دارند. برنامه هایی که با #C و Visual Basic.Net و C++ CLR و #F و Oxygene و
سایر زبان های تحت Net. نوشته شده اند بدون CLR قابل اجرا شدن نیستند.

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

درضمن آیا در این محیط CLR میشه از کدهای محیط کنسول عینا استفاده کرد ؟یا به مطالعه بیشتری نیاز دارم؟
خیلی ممنون از زحمات شما.:green::green:
عینا نه، کمی فرق می کنه، مثلا این دو تا کد رو مقایسه کنید :

کد:
#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
	printf("Hello World\n");
	return 0;
}

کد:
#include "stdafx.h"

using namespace System;

int main(array<System::String ^> ^args)
{
    Console::WriteLine(L"Hello World");
    return 0;
}

قطعا نیاز به مطالعه دارید، چون فرضا باید نحوه کار با توابعی مثل Console::WriteLine و Console::ReadLine
رو یاد بگیرید.
 

m_mx2009

Member
دستتون درد نکنه king عزیز.متوجه مطالب شدم.:rose:

پس نظر شما اینه که با همین console کار کنم.راستی به نظر شما فایده داره اگه MFC رو به صورت مقدماتی شروع کنم تا باهاش برنامه های ویژوال بنویسم؟
راستی Net. 2010 با Net. 2008 فرقی نداره؟
 
آخرین ویرایش:

the_king

مدیرکل انجمن
دستتون درد نکنه king عزیز.متوجه مطالب شدم.:rose:

پس نظر شما اینه که با همین console کار کنم.راستی به نظر شما فایده داره اگه mfc رو به صورت مقدماتی شروع کنم تا باهاش برنامه های ویژوال بنویسم؟

فایده که قطعا خواهد داشت اما کد هایی که در mfc نوشته میشه برای شروع کار زیادی پیچیده و شلوغ است.
اگر خواستید برنامه ویژوال ای بنویسید توصیه می کنم با mfc شروع نکنید، چون همان ابتدای کار انبوهی از کد
بصورت خودکار در برنامه نوشته میشه که هیچ آشنایی ای با آنها ندارید و سردرگم خواهید شد. بهتره که با
clr شروع کنید که کد های کمتر و جمع و جور تری داره.

در اون حدی که چشمگیر باشه و برای شما مهم باشه نه، فرقی بین Visual Studio های 2008 و 2010 نیست.
 
آخرین ویرایش:

m_mx2009

Member
ببخشید .این دیگه آخرین سوالمه!!!

به نظر شما منطقیه که برای کار های ویژوال برم سراغ #C وبرای کارهای دیگه برم سراغ ++C؟

اگه براتون امکان داره یه منبع فارسی برای ویژوال و همچنین CLR بهم معرفی کنید.

واقعا ممنونم .ببخشید که سرتون رو درد آوردم.شب بخیر!:rose::rose::rose:
 
آخرین ویرایش:

the_king

مدیرکل انجمن
ببخشید .این دیگه آخرین سوالمه!!!

برای این که به صورت ویژوال و CLR کار کنم در قسمت New Project ویژوال استودیو به کدوم قسمتش باید برم؟

اگه براتون امکان داره یه منبع فارسی برای ویژوال و همچنین CLR بهم معرفی کنید.

واقعا ممنونم .ببخشید که سرتون رو درد آوردم.شب بخیر!:rose::rose::rose:

مجموعه زبان ++Visual C رو باز کنید، یا در همون ابتدا Windows Forms Application رو انتخاب کنید و یا در
بخش CLR اش Windows Forms Application رو انتخاب نمایید، هر دو یک مورده.

متاسفانه منبع فارسی مناسبی برای ++Visual C و C++ CLR نمی شناسم، احتمالا به این دلیل که هیچوقت هم
دنبال منبع فارسی نبودم.
 

m_mx2009

Member
مجموعه زبان ++Visual C رو باز کنید، یا در همون ابتدا Windows Forms Application رو انتخاب کنید و یا در
بخش CLR اش Windows Forms Application رو انتخاب نمایید، هر دو یک مورده.

سوال آخرم بی مورد بود.اصلا حواسم نبود.

به نظر شما منطقیه که برای کار های ویژوال برم سراغ #C وبرای کارهای دیگه برم سراغ ++C؟

چون فکر میکنم قسمت ویژوال #C شبیه به VB باشه و کار باهاش راحت تر باشه.
در ضمن اگه بخوام کنسول کار کنم بهتره برم سراغ CLR یا Win32؟
چون طبق برداشت های من از فرمایشات شما ، برنامه های نوشته شده از طریق Win32 به صورت Native هستند و در نتیجه مستقیما قابل فهم توسط CPU هستند و در نهایت سرعت بیشتری دارند .درسته؟ :oops:
 
آخرین ویرایش:

the_king

مدیرکل انجمن
سوال آخرم بی مورد بود.اصلا حواسم نبود.

به نظر شما منطقیه که برای کار های ویژوال برم سراغ #C وبرای کارهای دیگه برم سراغ ++C؟

چون فکر میکنم قسمت ویژوال #C شبیه به VB باشه و کار باهاش راحت تر باشه.
در ضمن اگه بخوام کنسول کار کنم بهتره برم سراغ CLR یا Win32؟
چون طبق برداشت های من از فرمایشات شما ، برنامه های نوشته شده از طریق Win32 به صورت Native هستند و در نتیجه مستقیما قابل فهم توسط CPU هستند و در نهایت سرعت بیشتری دارند .درسته؟ :oops:

اگه منظورتون از ++C نوع CLR اش باشه، در هیچ موردی C++ CLR انتخاب بهتری نیست.
کلا در همه موارد #C از ++C ساده تره، طراحی نرم افزار رو هم سریعتر انجام میده و اگه #C و Visual Basic .Net رو
با C++ CLR مقایسه کنیم C++ CLR مزیتی نسبت به #C یا Visual Basic .Net نداره، نه در برنامه نویسی ویژوال و نه
کنسولی، تقریبا سرعت اجرای هر سه شون در یک حده.

اگه بخواهید یک سیستم عامل یا نرم افزاری در حد فتوشاپ طراحی کنید قطعا #C و C++ CLR و Visual Basic .Net
مناسب اینکار نیستند، اونوقت باید بروید سراغ C++ Win32 . برنامه هایی که با CLR اجرا می شوند معمولا
بین 2 الی 5 برابر کندتر از مشابه Native شون هستند، اما در عمل اغلب موارد و در برنامه های عادی
هیچ تفاوتی احساس نمی شود، تاکید می کنم، تفاوت محسوسی مشاهده نمیشه.
چرا؟ چون خیلی به ندرت پیش می آید که فشار روی CPU به 100 درصد برسد، تا زمانی که CPU کاملا مشغول
نیست فرقی نمی کند که یک کد در 0.0001 ثانیه اجرا شود یا 0.01 ثانیه. معمولا موقع اجرای برنامه ها این نرم افزار
است که معطل پاسخ کاربر است.
 

m_mx2009

Member
خیلی از لطفت ممنونم دوست عزیز.

من هم همون #C رو انتخاب کردم.اگه فرصت یادگیری MFC و Win32 رو داشتم خیلی خیلی بهتر از #C بودند، ولی اجبارا ++C رو رها کردم و #C رو انتخاب کردم و فکر کنم که تو #C پیشرفت بهتری داشته باشم!!

ضمنا میتونم برای حل مشکلات #C مزاحمتون بشم؟منظورم تو همین تالار هستش!!

بازم متشکرم:rose::rose::rose:
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
من هم یه چیزی بگم :)
اولا خیلی ممنون از توضیحات آقا علی و خیلی چیزها رو فهمیدم من جمله قضیه ماشین مجازی رو
به نظر من هم #C خیلی شیرین تر از ++C هست . البته طبق گفته ها فکر نکنم #C به درد کارهای برقی و میکروکنترلر ها بخوره و نمیدونم اما یه مدت بسیار کوتاهی که با ++C کار میکردم تفاوت سادگی شون کاملا محسوس هه مخصوصا توی قضیه ی string ها و آرایه ها و فایل های پیش پردازنده ای که باید برای پیوست توی ++C حفظ شه
هر چند اطلاعاتم درباره هر دو زبان بسیار مبتدی هست ولی خواستم نظری پیش اساتیدها بدم
:)
 

جدیدترین ارسال ها

بالا