ايران ويج

نسخه‌ی کامل: c++ یا c++ bulder
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام
تو c++bulder هم میشه درایور و برنامههای سطح کرنل
(یا توابع سطح کرنل برای دسترسی به رینگ 0) و ارتباط با توابع سیستمی ایجاد کرد؟ یا کامپایلر های c++ مایکروسافت تو این زمینه بهتر عمل میکنن؟
c++ builder هم یه کامپایلر واسه ویندوزه و میشه توش همه کاری کرد . برنامه نویسی ویندوز ربطی به نوع کامپایلر نداره . معمولا کتابخونه هایی که باهاش توی Visual C کار میکنیم MFC یا ATL هستند ولی توی c++ builder ما از کتابخونه VCL استفاده میکنیم . تفاوت کار در همینه ... در واقع تفاوت در framework هست نه در کاری که میخواییم بکنیم یا هدف نهایی برنامه !!
ممنون محمد جان
من در مورد برنامه نویسی user mode مشکلی ندارم و vcl رو به mfc ترجیح میدم فقط واسم یه چیز مهمه یه برنامه مینویسم که احتیاج به درایور داره (یه انتی ویروس یا یه رابط سخت افزاری برای کار با usb که احتیاج به نوشتن درایور برای ارتباط داره یا برنامه هایی که احتیاج به دسترسی به رینگ 0 دارن)میخواهم اینو بدونم که ایا کدی که تولید میشه در این زمینه ها تو c++ با c++bulder تفاوت داره ایا c++ تو این زمینه ها دارای کارایی بیشتری نسبت به c++builder هست؟
(کتابخانه های vcl و mfc هر دو برای رینگ 3 هستند تو ارتباط با سخت افزار و درایور نویسی کارایی ندارن)
درسته ! دسترسی به درایور ها و مباحث مربوط به کرنل تو محدوده کاری این کتابخونه ها نیست چون کلا سطح بالا هستند ولی میتونن در تعامل با کتابخونه های سطح پایین کار کنند .
دسترسی به سطوح پایین نیاز به استفاده ازFramework های جداگانه مربوط به اینکاره که مایکروسافت ارائه کرده و مسئله کامپایلر بازهم مهم نیست . باید بدونی که در ویندوز های NT 2002 ، XP و Vista دسترسی به سطح پایین فقط از طریق مدل درایو مایکروسافت باید انجام بشه و دسترسی مستقیم به سیستم ( مثل زمان DOS ) امکان پذیر نیست . مایکروسافت اول برای این کار (Windows Driver Model (WDM ارائه کرد که مشکلات زیادی داشت یکی اینکه خیلی کار باهاش سخت بود . در زمان ویندوز 2000 مایکروسافت یه مدل جدید تری ارائه کرد به نام Windows Driver Foundation یا WDF که قابلیت کار در user-mode و kernel-mode داره .
پس شما برای اینکار باید بری این مدل و سیستم رو یادبگیری که در واقع یه Framework دیگه هست و به شما امکان کار با سطح پایین رو میده .

http://www.microsoft.com/whdc/driver/wdf/default.mspx
پس فکر نمیکنم پیاده سازی windows driver foundation یانوشتن کتابخونه های سطح پایین با c++builder مشکلی داشته باشه
(اخه یکی از دوستای اهل فن اینجوری گفته بود
خود سي++ بيلدر هم محيط خوبي براي ساختن درايور روتينهاي سطح پائين وكار با توابع سيستم عامل مناسب نيست و نسخه هاي اخيرش هم كه اساسا با DDK هاي جديد كار نميكنه . در كل براي كرنل محصولات غير مايكروسافتي رو فراموش كن محصولات شركت پاندا هم از دلفي و سي++ بيلدر استفاده ميكنن ، منهاي درايورهاش)
ایشون کاملا درست میگه !
البته من شنیدم که DDK های جدید بدون نیاز به Visual C هم نصب میشن که خب امکان کار با کامپایلر های دیگه رو هم باید بده . در هر صورت من نه در زمینه درایور نویسی کار کردم نه با c++builder ور رفتم . اگر بخوای درایور بنویسی باید با WFD کار کنی که خودش میشه یه فریم ورک جدا پس مهم نباید باشه اگه بخوای با Visual C هم کار کنی .