سلام.
من می خوام با سی پلاس پلاس فقط DLL بنویسم.
از چه کامپایلری استفاده کنم بهتره؟
ممنون:چشمک:
Printable View
سلام.
من می خوام با سی پلاس پلاس فقط DLL بنویسم.
از چه کامپایلری استفاده کنم بهتره؟
ممنون:چشمک:
میتونید از IDE معروف Visual Studio و یا Dev استفاده کنید ./نقل قول:
من می خوام با سی پلاس پلاس فقط DLL بنویسم.
سلام
یا C++ هم می شه فقط یوزر مود درایور نوشت نه کرنل مود
بخش عظیم هیچ کدوم از اینا رو با C++ ننوشتن با c نوشتننقل قول:
ااتفاقا بخش عظیم سیستم عامل های Win 95,98,Me,XP بهره گرفته از ++C میباشد چراکه ++C چیزی
ندارد که C داشته باشد و ++C از داشتن آن بی بهره باشد ، ولی خوب در طراحی سیستم عامل های
ذکر شده از زبان C نیز کمک گرفته شده است ./
از windows internal
The vast majority of Windows is written in C, with some portions in C++. Assembly language is used only for those parts of the operating system that need to communicate directly with system hardware (such as the interrupt trap handler) or that are extremely performance-sensitive (such as context switching).
به همین خاطر می گن ویندوز یه سیستم عامل شی گرا نیست
با C++ حتي ميشه كتاب داستان نوشت. اين بستگي به كامپايلر و لينكر داره كه اونو براي چه سكويي آماده كنه.نقل قول:
یا C++ هم می شه فقط یوزر مود درایور نوشت نه کرنل مود
http://www.microsoft.com/whdc/driver/kernel/kmcode.mspxنقل قول:
یا C++ هم می شه فقط یوزر مود درایور نوشت نه کرنل مود
http://en.wikipedia.org/wiki/C++
این جواب خوبی برای من نبود خوب معلومه که بستگی داره ولی در حال حاظر چنین امکان وجود نداره ما با اینده و این که هیچی محال نیست کاری نداریم که یه نفر بیاد و یه لینکر و کامپایلر بنویسه ما از این C++ داریم صحبت می کنیم با همین لینکر و کامپیلر ( اینم بگم خودم عاشق c /C++ هستم)
از ویکی:
The Framework comes in two varieties:
- The Kernel-Mode Driver Framework, for writing standard kernel-mode device drivers.
- The User-Mode Driver Framework, for writing certain classes of driver that can run in user-mode.
These share the underlying programming model. However, the kernel-mode framework uses a flat C API while the user-mode framework is based on C++ and a light version of COM.
Microsoft neither endorses nor prohibits the use of C++ for kernel-mode drivers.
Microsoft is actively investigating ways of making C++ more usable in the kernel. It is not yet known whether all of the C++ features that can be applied to user-mode code can be made available for kernel-mode code.
http://www.microsoft.com/whdc/driver/kernel/kmcode.mspx
جناب Jaguar قسمتی از متن موجود در لینک را که دقیقاً در جواب شماست را نقل قول کردهاند.نقل قول:
این جواب خوبی برای من نبود خوب معلومه که بستگی داره ولی در حال حاظر چنین امکان وجود نداره ما با اینده و این که هیچی محال نیست کاری نداریم که یه نفر بیاد و یه لینکر و کامپایلر بنویسه ما از این C++ داریم صحبت می کنیم با همین لینکر و کامپیلر ( اینم بگم خودم عاشق c /C++ هستم)
شما میتوانید در kernel-mode با سی++ برنامه بنویسید ولی نباید از همهٔ امکانات این زبان استفاده کنید (امکاناتی مثل virtual inheritance یا virtual functions). یکی از دلایل آن هم بخاطر سازگاری با زبان سی است. شما برای کار در حالت kernel-mode یکی از مواردی که باید رعایت کنید، PODها (مخفف Plain Old Data برای سازگاری ساختار اشیاء سی++ با ساختار اشیاء سی) در زبان سی++ است و با رعایت چنین مواردی، میتوانید در kernel-mode برای ویندوز برنامه بنویسید.
لطفا نظر شخصی تون رو قاطی واقعیت نکنید ./نقل قول:
بخش عظیم هیچ کدوم از اینا رو با C++ ننوشتن با c نوشتن
حقیقتی که وجود داره اینه که در طراحی سیستم عاملهای ویندوز از 95 تا XP ، از هر دو زبان ++C و C
بهره گرفته شده است ، ولی خوب هر منطقی اینه میگه که ++C یه سر و گردن از C بالاست !(البته بیشتر
از یکی ...) ، ثانیا اگه ساختار زبان های ++C و C رو رعایت کنیم :
برای متغیری مثل a :
int a=0;
a++;//is : a=a+1
so
C++ = C+1
ثابت هم شد که ++C یک سر و گردن از C بالاست !
فکر کنم شما اصلا" نمی دونی موضوع چیه ما اینجا سر قوی و ضعیف بودن حرف نزدیم
شما گفتی: بخش اعظم سیستم عامل رو با C++ و مقدار کمی رو با c نوشتن
و من گفتم: خیر با توجه به کتاب windows internal این جوری نیست متن کتاب هم تو پست قبلیم هستش
فکر کنم چیز مبهمی باقی نمونده ./
اقای PC2st بله شما درست می کین من باید می گفتم از C++ در کرنل مود استفاده نمی کنن ( به خیلی از دلایل ) نه اینکه نمی شه
اولا بهتره ادبیات تون رو اصلاح کنید ، "نمی دونی" فک نکنم جمله درستی واسه یه برنامه نویسنقل قول:
فکر کنم شما اصلا" نمی دونی موضوع چیه ما اینجا سر قوی و ضعیف بودن حرف نزدیم
باشه !
یعنی چی نمیدونی ؟! شما چی رو میدونی ؟!
مگه هر کتابی هر چی گفت آدم باید باور کنه ؟! میخوای من هم براتون 100 تا سایت مثال بزنم که
اظهار داره ویندوزهای نامبرده رو با ++C نوشتن و بس ، و بعضیا میگن ادغامی از ++C,C !
هر منطقی میتونه این جمله رو درک کنه ، چون ++C,C دو چیز جدا از هم نیستند ، بلکه تکمیل یافته
یکدیگرند ، ولی شما طوری مطرح میکنید که مثل اینکه ++C یه زبان است و C یه زبان دیگر مثلا Delphi !
بچه ها با هم دوست باشید!
باید دید کلمۀ ابجکت یا شی در کجا به کار میره. درون کرنل ویندوز آبجکت های زیادی داریم که در سی پیاده سازی شدن، منتها نه اون شی گرایی ای که در ادبیات برنامه نویسی رایجه (ارث بری و چندریختی و ...)نقل قول:
به همین خاطر می گن ویندوز یه سیستم عامل شی گرا نیست
Geek1982:
حق با PC2st هست. همون داکیومنتی رو که Jaguar لینک داده بهش بخون، متوجه میشی. البته این رو هم اضافه کنم که خیلی خیلی کم دیدم کسی درایور کرنل رو در سی پلاس پلاس بنویسه (یعنی همۀ دردسرهای برنامه نویسی درایور به کنار، این که حواست باشه که از چه امکانات زبان و رانتایم استفاده کنی که مشکل ایجاد نکنه، دردسر اضافیه).
در ضمن در مورد زبان استفاده شده برای کد ویندوز ، حق با geek1982 هست
منبع :نقل قول:
some operating systems written in C++ programming language. These include Windows 95, 98, 2000, XP, Apple OS X, Symbian OS and BeOS.
http://www.mycplus.com/featured-arti...n-c-cplusplus/
لینکی که دادی مرجعی برای این قبیل اطلاعات محسوب نمیشه (احتمالا طرف نمی دونه فرق سی پلاس پلاس با ویژوال سی پلاس پلاس چیه)
بر اساس منابع موثق (Windows Internals یا همون مارک راسینویچ، Windows Research Kernel و ...) کد کرنل و دیگر بخش های low level ویندوز (مثل کتابخانه های اصلی مثل kernel32 و ...) که قسمت اعظم ویندوز رو تشکیل میده توسط سی نوشته شده (بعضی جا ها هم از اسمبلی استفاده شده). قسمت های سطح بالاتر مثل شل از سی پلاس پلاس استفاده کردن.
البته نمیخوام خارج از اهداف این تاپیک حرکت کنیم که معرفی کامپایلرها و بحث روی اونهاست و نه مجادله
روی یکسری مسائل حاشیه ای !
اولا جناب عسگری ، این یه وبلاگ نیست که یه نفر مدیر داشته باشه ، ممکنه چند نفر مدیر این سایت باشند ،اگه یه وبلاگ بود بله زیاد منبعش موثق نبود ولی این خودش یه سایته و فک کنم افراد طراح این سایتنقل قول:
احتمالا طرف نمی دونه فرق سی پلاس پلاس با ویژوال سی پلاس پلاس چیه
اینقدر شعور و آگاهی داشتن که تصمیم گرفتن سایتی در زمینه برنامه نویسی داشته باشند ، در ضمن
شما از کجا دونستید که ایشون فرق بین ++C و VCPP رو نمیدونند ؟!
گفتند ویژوال استادیو با VCPP نوشته شده که کاملا درسته و سایر مواردش هم همینطور ...
چرا اعتبار یک سایت رو بالاتر از یه بلاگ می دونی؟ (داشتم مثال می زدم ولی پاک کردم. به تعداد کافی وبلاگ شخصی وجود داره که در مورد مسائل تخصصی خودشون در دنیا خیلی اعتبار دارن و به عنوان مرجع محسوب میشن)
ببین کامپایلر یه چیزه ، IDE و محیط توسعه یک چیز دیگه (جسارت نشه سالار جان، می دونم که اینا رو می دونی، ولی برای اطلاع کسانی که ممکنه این نکته رو ندونن و نیز به منظور اشاره به غلط این سایت دارم این توضیح رو میدم). یعنی من ممکنه با Visual C++ کد سی یا سی پلاس پلاس رو کامپایل کنم. یا مثلا برای سورس سی پلاس پلاسی که دارم از mingw یا BCB در ویندوز استفاده کنم.
من جایی ندیدم ادعا بشه ویندوز رو با ویژوال سی پلاس پلاس کامپایل کردن (یعنی ما می دونیم که در سورس ویندوز از سی و سی پلاس پلاس استفاده بشه، ولی نمی دونیم آیا با همین کامپایلر و toolsetای که در دسترس ما هست این سورس رو کامپایل کردن یا با یک نسخه از ابزار داخلی مخصوص خود مایکروسافت؟)
در صفحه ای که شما لینک دادی نوشته
دقیقا مشکل من با ادعاییه که این سایت کرده (یعنی کامپایل شدن ابزار و سورس های مایکروسافت با Visual C++ و نیز این که بیشتر سورس ویندوز با سی پلاس پلاس نوشته شده. قبلا Raymond Chen به خوبی به سوال مشابهی جواب داده :نقل قول:
Literally most of the software are developed using various flavors of Visual C++ or simply C++. Most of the big applications like Windows 95, 98, Me, 200 and XP are also written in C++. Also Microsoft Office, Internet Explorer and Visual Studio are written in Visual C++.
http://blogs.msdn.com/b/oldnewthing/.../10020654.aspx
همچنین این لینک رو ببین (در لینک فوق به این لینک اشاره شده)
http://technet.microsoft.com/en-us/m...fidential.aspx
نقل قول:
The statement wasn't even 100% true when it was written, because Windows 95 used a special version of the compiler not found in nature for selected portions of the operating system.)
I find it interesting that the fact that the claim appeared on Bjarne Stroustrup's Web site caused the reader to turn off all brain functions responsible for critical evaluation of information. It is unlikely that Mr. Stroustrup has first-hand knowledge of the information on that page; it's almost certainly just a compilation of information reported to him by unnamed sources.
نقل قول:
Windows 95 itself needed a special compiler, one that understood both the 32-bit and 16-bit worlds and could bridge that gap. Windows 95 also needed a custom linker that understood how to glue these two types of code together, and it needed a custom linker for VxDs
جناب مهدی عسگری حق با شماست، در توسعهٔ ویندوز بطور گسترده از زبان سی هم استفاده شده است و طبق این گفته از این لینک (از سایت مایکروسافت):
Most of the source code for Windows NT is written in C or C++.بخش اعظم کدهای ویندوز NT توسط سی و سی++ نوشته شده است. پس اگر در جایی گفته شود که بخش اعظم ویندوز توسط سی++ پیادهسازی شده یا در جایی گفته شود بخش اعظم ویندوز توسط سی پیادهسازی شده، تقریباً هر دو حالت درست اما کامل نگفتهاند، زیرا مشارکت هر یک از این دو زبان در توسعهٔ ویندوز، عظیم بوده است. هر چند که در لایههای سطح پائینتر از سی استفاده شده است.
---------- بازگشت به بحث قبل:
بطور کلی دربارهٔ امکان نوشتن سیستمعامل توسط سی++، سیستمعاملهایی وجود دارد که به جای سی توسط سی++ نوشته شدهاند (یا استفاده از سی در آنها ناچیز بوده)؛نقل قول:
نوشته شده توسط Soltanifar
سیستمعاملهای موبایل مانند Symbian یا Windows Mobile (اکثر آنها نیز بجای سی با سی++ نوشته شدهاند) یا سیستمعاملی مثل MonaOS و بخش اعظمی از سیستمعامل BeOS و ...
میشه کمک کنین؟
من واقعا موندم.الان برنامه های پیشرفته مثل مدیریت هاردیسک (فرمت ، ادغام پارتشین) چجوری نوشته می شن؟برنامه هایی که با عمق سیستم عامل و سخت افزار کار دارن.
الان بگم باز میگین سی پلاس پلاس!!!!؟
خوب بابا مثلا اگه برنامه هایی سی پلاس پلاس با ویژوال استادیو نوشته می شن ، این برنامه نویسا چجوری توابع مورد نظر را می دونن؟تو کتاب ها که نگفته!
مورد دوم گرافیک برنامه هست.آیا گرافیک رو مستقیم می نوییسن مثل بازی؟یعنی دیگه از ابزار هایی مانند ویژوال استادیو استفاده نمیشه؟(کنترل ها یا گرافیک های پیش فرض)
من واقعا باید چی کار کنم؟
از چه زبان و IDE استفاده کنم؟
اگه میشه توضیح کامل بدین.خیلی ممنون از این که راهنماییم می کنید.خوش حالم از اینکه دوستای باحالی مثل شما دارم.:لبخند:
سلام
نمی دونم کدوم برنامه ها رو می گید ولی بازم بله این ها رو با c/C++ نوشتن
اگه می خوای در این موارد ارتباط با سخت افزار ( driver , native api , ring0 ... ) بیشتر بدونی در مورد WDK سرچ کن
اسم توابع هم تو کتاب ها نیست/هست خوب این WDK یه Document داره
درایور نویسی کاری هستش گه به علم وتجربهی زیادی نیاز داره
در مورد game هم اطلاع ندارم
با سلام
من تمام این موضوعاتی که در مورد کامپایلر ها نوشته بودین خوندم خیلی مفید بود یه سوال دارم وقتی تو سایتهای میریم که برنامه های اوپن سورس داره مثلا یه برنامه نمایش آنگ یا مثلا ادیتور متن نوشته زبان برنامه نویسی سی یا سی پلاس پلاس خوب این IDEکه باش برنامه رو نوشتن چی خوب vC++که نمی تونه باشه چون تجاری مثلا اگه GCCباشه با اون چه طوری برنامه های ویژال می نویسن یا با dev++مگه میشه برنامه ویژال هم نوشت
ممنون
سلام
دوست من vC++ چه mfc باشه چه cli/C++ بازم داره از api استفاده می کنه
gcc هم یه کامپایلره و می تونه از api استفاده کنه
پس می شه یه برنامه visual نوشت
توصیه می کنم کتاب Programming Windows
نوشتهی Charles Petzold رو یه نگاه کنی(برای دیدن اینکه می شه بدون دیزاینر و مستقیم با api یه برنامهی گرافیکی نوشت حالا می خواد کامپایلرت هر چی باشه )
چرا نمی شه با vC++ یه برنامه متن باز نوشت؟
Some of the Best Open Source Project's in VC++ & MFC
دوست من همهی برنانه ها از api استفاده می کنن حتی .net هم یه wrapper برای api هستش
و Api لینوکس با windows با هم فرق دارن ( از همون لحاظ که منظورتونه)
و اگه یه برنامه رو native بنویسی نه قابل انتقال نیست( البته بماند که این محیط رو شبیه سازی می کنن: wine ..)
و اگه با .net یا java یا یه زبان مفسری باشه امکان انتقال هستش چون محیط اجرای این برنامه ها ( virtual machine ) رو توی محیط دوم پیاده سازی شده ( یادت باشه این نوع برنامه های تحت ماشین مجازی هستن و خبر از وجود api ندارن { البته بازم حالت های مخطلف وجود داره استفاده از dllimport و Java Native Interface که پورتابل بودن رو با مشکل رو به رو می کنن})
و حالت دیگه ای می مونه مثل QT که اگه شما کاملا قوانین framework رو رعایت کنید برنامتون پورتابل می شه
و نکتهی اخر کد های استاندارد c/C++ در سطح کد پورتابل هستش
( هر چی نوشتم رو نخوندم امید وارم اشکال نداشته باشه)
سلام ، از ویژال استودیو 10 راضی هستین؟ یا هنوز همون 6 رو ترجیه می دین؟
درسته که ویژوال استودیو 6 رو ویندوز سون نسخه prof. اجرا میشه؟
طبیعیه که Visual Studio 2010 امکاناتش بسیار کاملتر شده و محیط IDE نیز بسیارنقل قول:
سلام ، از ویژال استودیو 10 راضی هستین؟ یا هنوز همون 6 رو ترجیه می دین؟
کاربر پسند و امکانات IDE بسیار پیشرفته تر شده است !
به لینک زیر هم که شامل ویژگی های جدید VC++ 2010 هستش ، نگاهی بکنید :
http://msdn.microsoft.com/en-us/library/dd465215.aspx
رو ویندوز Se7en Ultimate مشکلی که ندارد ./نقل قول:
درسته که ویژوال استودیو 6 رو ویندوز سون نسخه prof. اجرا میشه؟
سلام بر همه ! من از کامپایلر Turbo C++ 4.5 استفاده می کنم !:لبخند: میدونم که مال عصر هجر هستش ولی مجبورم !:متفکر: حالا باید چه جوری تو این کامپایلر به زبان C برنامه نویسی کنم ؟:عصبانی++: مطالب قبلی رو خوندم ولی چیزی دستگیرم نشد...:عصبانی:
چرا مجبور ؟! این همه کامپایلر بروز و جدیدتر و بهتر ، وجود داره ، چرا Turbo ؟!نقل قول:
میدونم که مال عصر هجر هستش ولی مجبورم !
سلام
من برای درس گرافیک باید از Turbo C++ 3.0 DOS استفاده کنم . ویندوزم 7 هستش و به واقع این برنامه منو گچی کرده . راه های مختلف رفتم و لی اون چیزی که می خواستم نشد.
سوالم این : آیا کامپایلر دیگه ایی هست که تحت ویندوز نصب 7 بشه و جدید تر باشه و بدون این که syntax عوض کنم برنامه های اون اجرا بشه .
ممنون
مطمئنا !نقل قول:
آیا کامپایلر دیگه ایی هست که تحت ویندوز نصب 7 بشه و جدید تر باشه و بدون این که syntax عوض کنم برنامه های اون اجرا بشه .
جهت اینکه بحث تکراری نشه ، تو همین تاپیک خیلی بحث شده ، جستجو کنید !
از اونجایی که توصیه کرده بودید از Visual Studio 2010 استفاده کنم. عکسی نخواهم گذاشت .
در new project باید کدوم نوع از project هارو انتخاب کنم ؟
چون بعضی از دستور ها مثل cout یا مثلا تابع گرفتن مقداری از کاربر اجرا نمیشه .
مشکل چیه ؟
Win32 Console Applicationنقل قول:
در new project باید کدوم نوع از project هارو انتخاب کنم ؟
چون بعضی از دستور ها مثل cout یا مثلا تابع گرفتن مقداری از کاربر اجرا نمیشه .
مشکل چیه ؟
سلام
فکر می کنم برای همه شما سروران لازم باشه که کمترین وقت رو صرف کامپایل کردن برنامه هاتون کنید .
من از همون اولی که با c آشنا شدم . سعی کردم ساده ترین روش ممکن رو یاد بگیرم . که اونم اینه .
دوستان کسی کامپایلر CAD_UL را داره؟
لطفا زود جواب بدید
سلام به همه دوستان
خواهش میکنم کمک کنید...چیکار کنیم دیگه تازه کاریم؟
چطوری میشه برنامه به زبان c رو در visual studio 2008نوشت؟
کجاش باید رفت؟
اینم عکس
https://barnamenevis.org/attach...1&d=1287573459
خواهشا جواب بدید
یاعلی
سلام دوست عزیز.
از قسمت General یه پروژه درست کنید. بعد هم یه فایل و بسم الله ...
باسلام
یک نسخه turbo C++ که نسخه ی 3 هست هنگام اجرای بعضی برنامه های .cpp که دانلود کردم از بعضی فایل های سرآیند #include که در پوشه ی برنامه موجود نیست ایراد می گیره این فایل ها را از کجا میتونم پیدا کنم و به پوشه ی include اضافه کنم ؟ مشکل حل میشه؟
هنگامی که بعد از انتخاب C++ در environment با استفاده از visual studio 2005 هم این فایل های .cpp رو انتخاب میکنم باز میکنه اما گزینه ی run پیدا نمی کنم چه جوری اجرای این فایل ها انجام میشه لطفا راهنمایی کنید:لبخندساده:
سلام !
واقعا از صحبتهایی که شد ممنونم! صحبت های جالبی بود! به خصوص مطالب راجع به VS .
دوستان من موفق شدم برنامه ام رو در win32 console application اجرا کنم اما وقتی حالت win32 project رو انتخاب میکنم این Error رو میده! ( منظورم با حالت گرافیکی هستش ):
unable to start program .
در ضمن از VS 2010 استفاده میکنم!
واقعا نمیدونم چرا؟ ممنون میشم اگه کمکم کنین!