PDA

View Full Version : تفاوت برنامه هایی مثل C# و vb6 با زبان c یا c++ چیست؟



ro-programing
یک شنبه 15 دی 1392, 10:57 صبح
سلام و خسته نباشید
دوستان مهم ترین سوالی که من رو گیج کرده اینه :
ببینید تو زبان هایی مثل C#‎ و یا امثال اون کلی دمو دستگاه داره و کامل میشهه اون برنامه ای که قراره نوشته بشه رو قبلش طراحی کرد حالا با فرم و بوتون و کلی دکمه های دیگه که زیاد حرفه ای نیستم اسم ببرم
ولی
ولی تو زبان سی و سی پلاس پلاس اینجوری نیست و فقط دستورات تو یه محیط داس مانند اجرا میشه و با این حال همه میگن زبان سی
میشه شما راهنمایی کنید داستان چیه؟ شاید شما بگید که در سطح بالا تر این امکان طراحی هم وجود داره ولی موضوع اینه که میخوام بدونم چند ماه یا چند سال باید سی رو کار کنم تا به اون سطحی برسم که بتونم یه نرم افزار حد اقل نرم افزار جمع دو عدد طراحی کنم مثل اونی که تو سی شارپ هست؟
ممنونم عزیزان
.

esafb52
دوشنبه 16 دی 1392, 21:22 عصر
با سلام

ویژوال بیسیک دستورات را گرفته و سپس به زبان سی کامپایل میکند
اونوقت این منبع اش کجاس؟؟؟؟؟؟

زبان سی قادر است خارج از محیط سیستم عامل کار کند این رو کجا خوندین بیشتر توضیح بدین ؟

barnamenevisjavan
دوشنبه 16 دی 1392, 21:25 عصر
همه چی باید با کد طراحی کنی.
توی همین #F شما اگر یه پروژه جدید ایجاد کنی فقط محیط کد نویسی هستش ولی خیلی راحت میشه با چند خط کد پروژه رو بصورت ویندوز فرمی در آوردش
در هر صورت باید یه راهی باشه بنظر منم نمیشه که آدم جای کنترل هارو با کد بنویسه باید پروژه رو هزار بار اجرا کنی تا تغییرات رو ببینی

ro-programing
دوشنبه 16 دی 1392, 21:30 عصر
اخه مشکل منم دقیقا همینه
فرم ها رو تو زبان هایی مثل سی چجوری ساخته میشه؟ یعنی با کد؟ اینطوری که خیلی سخت میشه
برای طراحی یه دکمه ی ok چند خط کد باید نوشت؟
فکر کنم ابزاری داشته باشه که باهاش بشه برای زبان سی فرم طراحی کرد

barnamenevisjavan
دوشنبه 16 دی 1392, 21:39 عصر
اخه مشکل منم دقیقا همینه
فرم ها رو تو زبان هایی مثل سی چجوری ساخته میشه؟ یعنی با کد؟ اینطوری که خیلی سخت میشه
برای طراحی یه دکمه ی ok چند خط کد باید نوشت؟
فکر کنم ابزاری داشته باشه که باهاش بشه برای زبان سی فرم طراحی کرد

قطعا همینطور هستش باید یکسری ابزار خواصی باشه به فرض شما بخوای یه برنامه بنویسی که از Toolbar استفاده کنی و کلی منو زیرمنو و آیکون براش در نظر بگیری کلی کنترل روی فرم بزاری و... ادم توی همین ویژوال که همه چیو میبینه کلی قاطی میکنه.
البته یه راهش که همون Visual C++ هست که ماکروسافت داره ولی خوب وابسته به دات نت هستش.
اکثر برنامه هارو بنظرم با دلفی میزنن که مثل دات نت محیط گرافیکی داره ولی به چیز خاصی وابسته نیست

esafb52
دوشنبه 16 دی 1392, 21:40 عصر
براشون اگر دیزاین مهم باشه تا جایی که من اطلاع دارم از QT استفاده میکنن

barnamenevisjavan
دوشنبه 16 دی 1392, 21:47 عصر
خوب کیوت قضیش کلا فرق میکنه یه پلتفرم جداست
اصن همین کیوت رو که ساختن چطوری پنجره هاشو منوهاشو باتون هاشو طراحی کردن؟

alireza_s_84
دوشنبه 16 دی 1392, 23:05 عصر
دوست عزیز این موضوع واضحه و یک برنامه نویس باید بدونه...
تمامی زبان های برنامه نویسی به زبان های سطح پایین کامپایل میشوند:
ویژوال بیسیک -------> C------>اسمبلی------->ماشین(0 و 1)
ضمنا یکی از دلایلی که میتوان گفت زبان c میتواند خارج از سیستم عامل نیز عمل کند این است که خود سیستم عامل نیز به زبان C نوشته میشود...
موفق باشید
میشه منبعی برای این ادعا ذکر کنید: ویژوال بیسیک به C به اسمبلی به ماشین

ضمنا زبان C مستقیما به زبان ماشین ترجمه میشود

کامبیز اسدزاده
دوشنبه 16 دی 1392, 23:11 عصر
مقایسه زبان های پایه (مادر) و قدرتمند با زبان های دیگه درست نیست ! ذاتا زبان های پایه و مادر از قدرت و سرعت و همچنین توانایی هایی برخورداند که زبان های دیگر عمرا این مزایارو داشته باشند.
استفاده از زبان های C/C++ در تمامی موارد امکان پذیر هست هم در صنعت هم در تمامی علم روز دنیا به صورت نرم افزاری و تولید دستورالعمل ها برای سخت افزار و ...

ولی در رابطه با زبان های C# یا مثلا VB.NET و هز زبانی به جز C میتوان گفت فقط و فقط به خاطر اهدافی از قبیل انحصاری سازی و همچنین و ایجاد وابستگی برنامه نویسان به شرکت های پشتیبان این زبان ها مثل مایکروسافت هستش / شما تا زمانی که با چنین زبان هایی برنامه نویسی میکنید متکی و وابسته شرکت مایکروسافت هستید که در زبان های پایه چنین نیست چرا که توسط زبان مادر (C/C++) شما میتونید هر کاری بکنید.

sagggad
دوشنبه 16 دی 1392, 23:13 عصر
میشه منبعی برای این ادعا ذکر کنید: ویژوال بیسیک به C به اسمبلی به ماشین

ضمنا زبان C مستقیما به زبان ماشین ترجمه میشود

لطفا راجع به چیزی که اطلاع ندارید صحبت نکنید:
این لینک کامل این موضوع که من گفتم رو توضیح داده:
http://fa.wikipedia.org/wiki/%D8%B2%D8%A8%D8%A7%D9%86_%D8%A8%D8%B1%D9%86%D8%A7% D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C _%D8%B3%D8%B7%D8%AD_%D8%A8%D8%A7%D9%84%D8%A7
سعی نکنید که فقط مخالفت کنید...

sagggad
دوشنبه 16 دی 1392, 23:15 عصر
این خط رو دقیقا در سایت ویکی پدیا نوشته است:
ترجمه شونده زبان‌های سطح بالا ممکن است به یک زبان سطح پایین ترجمه گردند که معمولاً زبان هدف سی می‌باشد
آدرس:http://fa.wikipedia.org/wiki/%D8%B2%...A7%D9%84%D8%A7 (http://fa.wikipedia.org/wiki/%D8%B2%D8%A8%D8%A7%D9%86_%D8%A8%D8%B1%D9%86%D8%A7% D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C _%D8%B3%D8%B7%D8%AD_%D8%A8%D8%A7%D9%84%D8%A7)

esafb52
دوشنبه 16 دی 1392, 23:16 عصر
لطفا راجع به چیزی که اطلاع ندارید صحبت نکنید:
این لینک کامل این موضوع که من گفتم رو توضیح داده:
http://fa.wikipedia.org/wiki/%D8%B2%D8%A8%D8%A7%D9%86_%D8%A8%D8%B1%D9%86%D8%A7% D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C _%D8%B3%D8%B7%D8%AD_%D8%A8%D8%A7%D9%84%D8%A7
سعی نکنید که فقط مخالفت کنید...
انوقت تو کجای اون صفحه این مطلب نوشته شده؟؟؟؟؟

sagggad
دوشنبه 16 دی 1392, 23:17 عصر
قشنگ دقت کنید:
در قسمت
مدل‌های اجرا:

این خط رو دقیقا در همون آدرسی که من دادم نوشته است:
ترجمه شونده زبان‌های سطح بالا ممکن است به یک زبان سطح پایین ترجمه گردند که معمولاً زبان هدف سی می‌باشد

FastCode
دوشنبه 16 دی 1392, 23:23 عصر
لطفا هر چیزی که فکر میکنید توی این تاپیک یاد گرفتید رو از ذهنتون پاک کنید.
چون در واقع چنین اتفاقی نیافتاده.

روش اجرای برنامه چند نوع هستند که من سه تایی که باهاش کار داریم رو توضیح میدم.
Native
Interpreted
VM Based

محیطهای اجرای برنامه هم ring نام دارند که اونها رو هم توضیح میدیم و بعدش هم مبحث مدیریت حافظه که این سه مبحث تفاوت این زبونها و محیطهای برنامه نویسی رو مشخص میکنه.

Native ها برنامه هایی هستند که مستقیم روی پردازنده اجرا میشن.و هیچ واسطه ای بینشون نیست.این برنامه ها مخصوص یک نوع پردازنده خاص نوشته میشوند.
مثل C, C++‎‎‎‎, vb6

Interpreted ها برنامه هایی هستند که در آنها برنامه به شکل متن به یک محیط interpreter داده میشوند و خط به خط بدون نیاز با کامپایل اجرا میشوند.
مثل php, bash, python

VM Base ها برنامه هایی هستند که به یک زبان میانی(در مورد داتنت این زبان IL یا Intermediate language نام دارم) نوشته میشوند یا از یک زبان دیگر به این زبان ترجمه میشوند.و توسط محیط اجرا یا runtime موقع اجرا برای پردازنده مورد نظر کامپایل میشوند.
مثل C#‎‎‎‎, Java

و مبحث ring یا حلقه:
در پردازنده ها برای جدا کردن سطح دسترسی برنامه های هسته و برنامه های کاربر از عنوانی به اسم ring استفاده میشود که من بحث رو در مورد پردازنده های x86 ادامه میدهم.
در این پردازنده ها برنامه های هسته در رینگ 0 اجرا میشوند و به تمام سختافزار و حافظه دسترسی کامل و مستقیم دارند.برنامه های رینگ های پایینتر (۱ ۲ و ۳) باید برای دسترسی از رینگهای بالاتر عبور کنند.
اکنون فقط از رینگ های ۰ و ۳ استفاده میشود.
فقط زبان C میتواند بدون کمک گرفتن از زبانهای دیگر در رینگ ۰ اجرا شود و زبان های غیر Native چنین قابلیتی ندارند.
مایکروسافت یک بار تلاش تقریبا نا موفقی برای غلط نشان دادن این حقیقت انجام داد.


مدیریت حافظه:
مدیریت حافظه با روشهای مختلفی انجام میشود.از جمله مدیریت خودکار با GC.مدیریت توسط برنامه نویس.مدیریت با نگهداری تعداد مرجع.
هر کدام از این روشها سختار مخصوص خود دارند و شیوه کد نویسی منحصر به فرد.همگی در همه زبانها قابل استفاده هستند ولی برای هر زبان از پیشفرض های خاصی استفاده میشود.
پیشفرضهایی که الان استفاده میشود:
GC: C#‎‎‎‎, Java
manual: C, C++‎‎‎‎
reference countng: C++‎‎‎‎ smart pointers, Delphi, php

و من واقعا نمیدونم نوشته های شما چه پایه و اساسی دارند.(نام کاربریتون یک مشکل تلفظی داره که فکر کردم ممکنه چند وقت دیگه که انگلیسیتون خوب شد و یاد گرفتید اسمتون رو بنویسید بخواهید عوضش کنید.برای همین اسمتون رو ننوشتم.)

sagggad
دوشنبه 16 دی 1392, 23:27 عصر
جناب FastCode از توضیحات مفید شما ممنونم....
لطفا این رو بگید که زبان ویژوال بیسیک و سی شارپ ابتدا به چه زبانی کامپایل میشوند؟؟

FastCode
دوشنبه 16 دی 1392, 23:38 عصر
visual basic مستقیما به زبان ماشین و C# هم به IL
IL در زمان اجرا به زبان ماشین تبدیل میشود.

sagggad
دوشنبه 16 دی 1392, 23:39 عصر
چرا سایت هایی مثل مایکروسافت و ویکی پدیا چیز دیگه ای میگن؟

sagggad
دوشنبه 16 دی 1392, 23:41 عصر
یعنی با توجه به این موضوع سطح ویژوال بیسیک از سی شارپ پایینتر هست؟

FastCode
دوشنبه 16 دی 1392, 23:50 عصر
بله.vb از c# سطح پایینتر هست.

در چه موردی چیز دیگه ای میگن؟

sagggad
دوشنبه 16 دی 1392, 23:53 عصر
ممنون از راهنماییتون...
ویژوال بیسیک ترجمه میشه یا کامپایل؟؟

alireza_s_84
دوشنبه 16 دی 1392, 23:59 عصر
لطفا راجع به چیزی که اطلاع ندارید صحبت نکنید:
این لینک کامل این موضوع که من گفتم رو توضیح داده:
http://fa.wikipedia.org/wiki/%D8%B2%D8%A8%D8%A7%D9%86_%D8%A8%D8%B1%D9%86%D8%A7% D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C _%D8%B3%D8%B7%D8%AD_%D8%A8%D8%A7%D9%84%D8%A7
سعی نکنید که فقط مخالفت کنید...

یک مقدار اطلاعات بنده ضعیفه برای همین منظور باهم چیزهایی رو مرور میکنیم تا شما ایرادات منو برطرف کنید:
زبان VB ابتدا به P-Code تبدیل میشه و سپس در زمان اجرا توسط ماشین مجازی VB یا همون msvbvm<version>.dll به زبان ماشین ترجمه میشه.
P-Code هم زبان اختصاصی مایکروسافت برای تبدیل کدهای باینری به زبان ماشینه
من هرچی نگاه میکنم در این سناریو نقشی برای ++C نمیبینم
و باز هم درخواست میکنم گفته مایکروسافت رو با ذکر منبع به من نشون بدین
ببخشید که مخالفت کردم اطلاعات من بیشتر از این نبود

منبع:
http://en.wikipedia.org/wiki/Visual_Basic

akbar-agin
سه شنبه 17 دی 1392, 00:00 صبح
اگه لطف کنین و نحوه اجرای برنامه ها رو به صورت دیاگرام و تو تصویر بزارین ممنون میشم

sagggad
سه شنبه 17 دی 1392, 00:04 صبح
درسته ولی اون پستی هم که من نشونتون دادم در یه قسمت این موضوع رو بازگو کرده بود...
گفته بود : اکثر زبان های سطح بالا به زبان هایی همچون c ترجمه میشوند و سپس کامپایل میشوند...دقت کنید که ترجمه و کامپایل با هم بسیار تفاوت دارند

FastCode
سه شنبه 17 دی 1392, 00:10 صبح
شاید از نظر تعداد زبان درست باشه.
البته زبانهایی مثل php هم هستند که به جز حالت interpreted میتوانند با مثلا hiphop به شکل VM Based یا کامپایل به C یا با برنامه های دیگر به روشهای دیگر کامپایل شوند

علی متقی پور
سه شنبه 17 دی 1392, 02:54 صبح
با سلام


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

تمامی زبان های برنامه نویسی تحت پلتفرم دات نت، به زبان میانه مایکروسافت یعنی IL ترجمه میشن. ( چه وی بی دات نت چه سی شارپ چه بقیشون ) و اصلا این بحث اونقد ها هم ربطی به مقایسه c/C++‎‎ با زبان های دات نتی نداره. همونطورکه تو دنیای واقعی استقلال و قدرت دو چیز هم عرضن تو دنیای برنامه نویسی هم همینه. هر چقد زبونی مستقل تر باشه قدرتمند تره. ولی خب شما باید بهای این استقلال رو هم بپردازی و مثلا بشینی برای داشتن یه دکمه هم صد ها خط کد بنویسی در حالیکه وقتی قید این استقلال رو زدی میتونی از ابزارهایی که مایکروسافت در اختیارت گذاشته استفاده کنی و کارت رو سریعتر انجام بدی.

---------------------------------------------



من الان تو یکی دیگه از تاپیک های دیگه هم بررسی کردم و دیدم ماشالله این آقا سجاد همه جا گوهر فشانی کرده!!!!!
متاسفم که باید در مرود شما با آقای صادقیان صحبت کنم. بنظرم بهتره شما در مورد پست دادن و محتوایی که ارائه میدید توجیه بشید

sagggad
سه شنبه 17 دی 1392, 09:11 صبح
با سلام


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

تمامی زبان های برنامه نویسی تحت پلتفرم دات نت، به زبان میانه مایکروسافت یعنی IL ترجمه میشن. ( چه وی بی دات نت چه سی شارپ چه بقیشون ) و اصلا این بحث اونقد ها هم ربطی به مقایسه c/C++‎‎‎‎‎‎‎‎ با زبان های دات نتی نداره. همونطورکه تو دنیای واقعی استقلال و قدرت دو چیز هم عرضن تو دنیای برنامه نویسی هم همینه. هر چقد زبونی مستقل تر باشه قدرتمند تره. ولی خب شما باید بهای این استقلال رو هم بپردازی و مثلا بشینی برای داشتن یه دکمه هم صد ها خط کد بنویسی در حالیکه وقتی قید این استقلال رو زدی میتونی از ابزارهایی که مایکروسافت در اختیارت گذاشته استفاده کنی و کارت رو سریعتر انجام بدی.

---------------------------------------------



من الان تو یکی دیگه از تاپیک های دیگه هم بررسی کردم و دیدم ماشالله این آقا سجاد همه جا گوهر فشانی کرده!!!!!
متاسفم که باید در مرود شما با آقای صادقیان صحبت کنم. بنظرم بهتره شما در مورد پست دادن و محتوایی که ارائه میدید توجیه بشید

آقا من تسلیم...
اما تا الان تمام مراجعی که حتی تو اینترنت خوندم این رو گفته بودن...
در پست اول هم فکر کنم منظورم رو اشتباه رسوندم...
اما این رو همتون میگید که ابتدا به زبان سی ترجمه میشن و سپس به زبان ماشین در نهایت کامپایل میشن...
درسته؟؟
حالا لابد یه چیزی هست که این همه مخالف رو دست ما بلند شده؟...
راستی کجا رو میگید گوهر فشانی؟
پست ها و تایپیک هاتون رو خوندم...
بله با آقای صادقیان رفیقید(البته یه جورایی...)
اما فکر نمی کنم بتونید ازش برای این جور جاها استفاده کنید دوست من...

barnamenevisjavan
سه شنبه 17 دی 1392, 09:44 صبح
از توضیحت FastCode ممنونم ولی یه سوال میشه در مورد برنامه هایی ویندوزی که با سی یا سی++ (بدون ویژوال سی++) نوشته میشن توضیح بدید؟طراحی کنترل ها و چیدمانشون به چه شکل هست؟واقعا برام جای سواله.

sagggad
سه شنبه 17 دی 1392, 09:49 صبح
خودش و آقای علی متقی پور گفتن دیگه:تمامی اشیاء و ریز ترین چیزها رو باید با کد نویسی درست کرد...
اگه باز خودشون مخالفت نکنن:چشمک:

mehdiomnia
سه شنبه 17 دی 1392, 10:55 صبح
برادرا ماشاالله این همه سوال تو انجمن بی جواب مونده بحث میکنید اینجا آخه که چی
همه این مباحث بارها در وب فارسی و سایت مایکروسافت درج شده یکم سرچ کنن پیدا میشه
لطفا به سوال بچه ها برسید
چیه همش تا نوشته های جدید میزنیم این تایپیک بالاس

omidshaman
سه شنبه 17 دی 1392, 11:26 صبح
با سلام


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

تمامی زبان های برنامه نویسی تحت پلتفرم دات نت، به زبان میانه مایکروسافت یعنی IL ترجمه میشن. ( چه وی بی دات نت چه سی شارپ چه بقیشون ) و اصلا این بحث اونقد ها هم ربطی به مقایسه c/C++‎‎ با زبان های دات نتی نداره. همونطورکه تو دنیای واقعی استقلال و قدرت دو چیز هم عرضن تو دنیای برنامه نویسی هم همینه. هر چقد زبونی مستقل تر باشه قدرتمند تره. ولی خب شما باید بهای این استقلال رو هم بپردازی و مثلا بشینی برای داشتن یه دکمه هم صد ها خط کد بنویسی در حالیکه وقتی قید این استقلال رو زدی میتونی از ابزارهایی که مایکروسافت در اختیارت گذاشته استفاده کنی و کارت رو سریعتر انجام بدی.

---------------------------------------------



من الان تو یکی دیگه از تاپیک های دیگه هم بررسی کردم و دیدم ماشالله این آقا سجاد همه جا گوهر فشانی کرده!!!!!
متاسفم که باید در مرود شما با آقای صادقیان صحبت کنم. بنظرم بهتره شما در مورد پست دادن و محتوایی که ارائه میدید توجیه بشید
سلام
ببخشید ولی بهتر نیست بدون مطالعه نظر ندین ؟!
باتن 100 خط ؟!!
Qt-wxWidget-c++Builder-FLTK-GTK+z و ......رو برای همین چیزا ساختن ! اکثرا Cross platform هم هستن .

tstsst
سه شنبه 17 دی 1392, 12:14 عصر
سلام

کلا پست های این تاپیک 20% شون ارزش خوندن داشت. [نظر شخصی]
در کل تمام زبان ها به اسمبی و زبان ماشین باید تبدیل بشن فرق زبان ها با هم در راه رسیدن به اونه.
زبان های دات نتی کلا زبان های میانی ان نه سطح بالا, دات نتی ها به MSIL تفسیر می شن. [Visual Basic .NET and C#‎‎‎™ both compile to Microsoft intermediate language]
و به نظر من بهتره به نسبت کارای برنامه و سلیقه شخصی زبان خودتو انتخواب کنی. [نظر شخصی]
ولی بین C#‎‎‎ و vb فرق در جزئیات نه کلیات

114995

در مورد C,C++‎‎ اگه به خوای GUI یا رابط کاربری داشته باشی راه زیاد داره
1. کد نویسی که کار ساده ای نیست برای هیچ کس
2. QT فرقی با بالایی نداره ولی قسمتی از کد رو خود برنامه برات می نویسه راهت تر از بالاییه
3. VC++‎‎.Net که اینم در دسر های خواص خودشو داره تقریبا مثل QT ه (نه کاملا)

تفاوت زبان ها در امن بودن (دسترسی به حافظه و...) نوع بیان (syntax) نوع سازگاری (با پلتفرم و سیستم آمل) و نوع چک کردن.
امن بودن به معنای راهت هک شدن نیست زبان های که امن نیستن مثل C++‎,C,C#‎,vb.net,... می تونن به حافظه کامپوتر دست رسی داشته باشن (مثل اشاره گرها*) که به این معنای که می تونین در هک کردن از شون استفاده کنید :D
syntax هم که هیچی ،
سازگاری به نظر من یکی از مهم ترین قابلیت های یک زبانه ،
نو چک کردن هم برای مثل زبان های C++‎ متقیر هارو قبل کامپای می بنده و با ید حتما نوعش مشخص باشه (به معنای این نیست که نمیشه a که عدد رو به حروف تقییر داد)

سپاس...

tstsst
سه شنبه 17 دی 1392, 12:47 عصر
اخه سوال منم دقیقا همین بود ولی جوابی نگرفتم

تو CPP بجز QT و VC.Net++ باید تمام مشخصه هارو کد نویسی کنی.
ولی اگه منظورت کد :

#include <windows.h>

const char g_szClassName[] = "myWindowClass";

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX wc;
HWND hwnd;
MSG Msg;

wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = g_szClassName;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

if(!RegisterClassEx(&wc))
{
MessageBox(NULL, "Window Registration Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}

hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE,
g_szClassName,
"The title of my window",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
NULL, NULL, hInstance, NULL);

if(hwnd == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}

ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);

while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}

کامبیز اسدزاده
سه شنبه 17 دی 1392, 13:04 عصر
برای بار هزارو چندمین.... مقایسه زبان های CLI با Native درست نیست ! حال اینکه شما اینهمه بحث های بی مورد میکنید خلاصه همه این بحث ها به صورت زیر میتونه باشه :

برای پول در آوردنو نمیدونم عرضم خدمت شما راه اندازی کار مشتری در کمترین زمان از زبان های سطح بالا که نیازی به دانش خیلی عمیق برنامه نویسی نداره میتونید استفاده کنید در غیر اینصورت اگه هدفتون تولید یه چیز درست حسابیه که برای خودش خدایی باشه بهترین پیشنهاد استفاده از زبان های مادر مثل C/C++‎ هست.

درضمن : QT نه چون کی یو تی خونده میشه و درستش Qt به آوای (کیووووت) هست.

علی متقی پور
سه شنبه 17 دی 1392, 17:35 عصر
سلام
ببخشید ولی بهتر نیست بدون مطالعه نظر ندین ؟!
باتن 100 خط ؟!!
Qt-wxWidget-c++Builder-FLTK-GTK+z و ......رو برای همین چیزا ساختن ! اکثرا Cross platform هم هستن .

با سلام

دوست عزیزم صحبت از نوشتن کد با c++ هست نه استفاده از ایزارها و کتابخونه های دیگه. ضمنا خوبه بدونید که حتی برای استفاده از یک باتن دات نتی هم حداقل 10 خط کد باید نوشته بشه منتها این کد ها بصورت اتوماتیک توسط ویژوال استیدو ایجاد میشن. برای یک برنامه نویس 100 خط کد اصلا چیزی حساب نمیشه.

habibb
سه شنبه 17 دی 1392, 17:50 عصر
اخه سوال منم دقیقا همین بود ولی جوابی نگرفتم


از توضیحت FastCode ممنونم ولی یه سوال میشه در مورد برنامه هایی ویندوزی که با سی یا سی++ (بدون ویژوال سی++) نوشته میشن توضیح بدید؟طراحی کنترل ها و چیدمانشون به چه شکل هست؟واقعا برام جای سواله.

من این نرم افزار رو پیدا کردم راجبش بیشتر توضیح بدین این بدون دات نت فرم می سازه!
محیط توسعه برنامه های کاربردی به زبان های Delphi و C++ با Embarcadero RAD Studio XE3 17.0.4625.53395

shahryari
سه شنبه 17 دی 1392, 17:51 عصر
سلام
ببخشید ولی بهتر نیست بدون مطالعه نظر ندین ؟!
باتن 100 خط ؟!!
Qt-wxWidget-C++‎Builder-FLTK-GTK+z و ......رو برای همین چیزا ساختن ! اکثرا Cross platform هم هستن .
دوست عزیز آیا شما در ایام قدیم با کیوبیسک کد نوشته اید؟؟؟
این محیط منظورمه
http://www.mysundial.ca/tsp/images/qbasic_startup_screen.gif

حمیدرضاصادقیان
سه شنبه 17 دی 1392, 19:24 عصر
سلام.
متاسفانه بعضی وقتها احساس میکنم به مهدکودک اومدم(از کاربران محترم شخصا عذرخواهی میکنم)
به خدا کسی مجبورتون نکرده بدون دانش بیاید صحبت کنید.
چرا حرفها وبرداشتهای شخصی خودتون رو میاید دخیل میکنید؟؟
واقعا دیگه خسته شدم
تقریبا در نصفی از تاپیکهایی که جواب میدم این مورد رو نوشتم.
تورو خدا به جای خوندن ویکی پدیای فارسی به یک مرجع معتبر مثل MSDN مراجعه کنید که دقیقه نه یک منبعی که هر بچه ای میتونه بیاد اونو اصلاحش کنه.
نمیدونم یکی میگه 100 خط کد داره یکی میگه 10 خط کد داره.
اگر محیطش رو ندیدین بابا اظهار فضل نکنید.
هیچ اتفاقی نمیافته به خدا.
در دات نت هیچ 10 خط تولید نمیشه. یک Object از کلاس Tbutton ایجاد میشه همین.
مابقی کدها برای نمایش Button روی صفحه و نمایش متن اون هست نه ایجاد شی.

this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(273, 44);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.UseVisualStyleBackColor = true;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(526, 261);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);


این کد تولید شده برای نمایش یک دکمه روی یک فرم هست.
درمورد زبانهای دیگر نیز به همین شکل.
کی گفته Vb6 سطح پایین تر از c# ؟؟
شما این سطح رو چطوری مشخص میکنی؟
زبان سطح پایین به C و Assembly می گویند که میتونید به راحتی و مستقیم با سیستم عامل ارتباط بگیرید و کدهای UnManaged بنویسید و هزار کار دیگر که در زبانهای دیگر مثل دلفی و وبی و سی شارپ امکان نوشتن اونها نیست.
مابقی زبانها نیز سطح بالا هستند و هیچکدوم به سی تبدیل نمی شوند و همه اونها مستقیم یا با واسطه به اسمبلی تبدیل می شوند ولی هیچکدوم به سی تبدیل نمی شوند و نیازی هم به اینکار ندارند.

این تاپیک هم قفل خواهد شد.