ورود

نسخه کامل مشاهده نسخه کامل : ارتباط با سخت افزار در برنامه هاي تحت داس



mahdi7s
12-12-2008, 20:56
سلام
من مي خواستم بدونم آيا ميشه با همين برنامه هاي زبان سي پي پي كه ما مي نويسيم و تحت داس اجرا ميشن . ميشه با سخت افزار ارتباط برقرار كرد؟(مثلا ميشه برنامه اي نوشت كه در سي دي رام رو باز وبسته كنه؟)
اگه ميشه لطفا نحوه ي انجام اين كار رو توضيح بدين تا ببينيم چه جوري هست!:11:

mahdi7s
13-12-2008, 20:24
از دوستان كسي نبود كمك كنه؟

hoax3r
13-12-2008, 22:17
سلام
 
اگه منظورتون از داس همین محیط command prompt هست که در ویندوز وجود دارد بله این امکان هست
ویندوز تعداد بسیار زیادی توابع داخلی یا همون API داره که تمام کارها در ویندوز فقط با استفاده از این API ها امکان پذیز هست
تمام توابعی که در کامپایلر ها تعریف شده در نهایت به API ختم میشن فرقی نمیکنه برنامه به صورت GUI باشه یا به صورت Console
در دو حالت به دلیل اینکه محیط ویندوز هست باید از API های تعریف شده استفاده بشه
در نتیجه کسی که API ها ویندوز رو خوب یاد بگیره میتونه هر کاری می خواد بکنه که این شامل کار با سخت افزار هم میشه،
 
برای نمونه برای باز و بسته کردن سی دی رام این کد رو ببینید ، driveLetter رو به درایو سی دی رام خود تغییر بدین مثلا من k گزاشتم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
 
تمام این API ها هم در MSDN کامل شرح داده شده،

----------

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


 
شاد باشید

mahdi7s
14-12-2008, 15:50
خيلي از پاسختون ممنونم
ولي يه مشكلي وجود داره كه فكر مي كنم از كامپايلر من باشه(microsoft visual c++6) حالا ميگم اگه ميدونيد چي هست بگيد ممنون ميشم
وقتي كد زيرو در كامپايلرم وارد مي كنم اروررهاي زير رو ميده مي دونيد دليلش چي هست؟

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در ضمن يه سوال ديگه هم داشتم ->
اگه كسي بره طرف ويژوال سي و برنامه ها رو از حالت داس بيرون بياره ميتونه بدون استفاده از api ويندوز با سخت افزار ارتباط برقرار كنه؟(منظورم از تحت داس همون cmd هستش)

hoax3r
14-12-2008, 19:34
خيلي از پاسختون ممنونم
ولي يه مشكلي وجود داره كه فكر مي كنم از كامپايلر من باشه(microsoft visual c++6) حالا ميگم اگه ميدونيد چي هست بگيد ممنون ميشم
وقتي كد زيرو در كامپايلرم وارد مي كنم اروررهاي زير رو ميده مي دونيد دليلش چي هست؟

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


این هدر فایلو اضافه کن


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



در ضمن يه سوال ديگه هم داشتم ->
اگه كسي بره طرف ويژوال سي و برنامه ها رو از حالت داس بيرون بياره ميتونه بدون استفاده از api ويندوز با سخت افزار ارتباط برقرار كنه؟(منظورم از تحت داس همون cmd هستش)

ویژوال سی یک محیط برنامه نویسی است نه یک زبان مستقل. قبلا هم گفتم فرقی نمیکنه که برنامه تحت داس باشه
یا دارای اینترفیس و ظاهر گرافیکی در دو حالت به دلیل اینکه هر دو در ویندوز هستن حتما باید API وجود داشته باشه.
ولی خوب ما در زبان های برنامه نویسی مستقیم از API استفاده نمیکنیم ولی وقتی بخوایم از امکانات بیشتری در
برناممون استفاده کنیم مثل کار با سخت افزار که دیگه خارج از توانایی زبان برنامه نویسی هست یا باید مستقیم از API استفده بشه
یا از کتابخانه هایی که برای راحتی برنامه نویس در زمینه مورد نظر تولید شده استفاده کرد.

البته بهتره منظورتون رو از سخت افزار معلوم کنید که بهتر بشه نظر داد

شاد باشید

mahdi7s
14-12-2008, 22:15
سلام
ممنونم / با اضافه كردن هدر فايل winioctl.h مشكلم حل شد.
يه چند تا سوال برام پيش اومده اگر مي دونيد لطفا جواب بدين(اگه از دوستان كسي نظري داره بگه ممنون ميشم)
--------->

آيا ميتونيم به طور مستقيم در محيط برنامه نويسي از API استفاده كنيم؟

=========================


...
قبلا هم گفتم فرقی نمیکنه که برنامه تحت داس باشه
یا دارای اینترفیس و ظاهر گرافیکی در دو حالت به دلیل اینکه هر دو در ویندوز هستن حتما باید API وجود داشته باشه.


پس مزيت برنامه هاي ويژوال سي نسبت به برنامه هاي زبان سي چي هست؟

=============================

و آيا يادگيري API هاي ويندوز براي نوشتن برنامه هاي تحت ويندوز لازم است؟

=====================================
:11::11:

hoax3r
15-12-2008, 10:50
سلام


آيا ميتونيم به طور مستقيم در محيط برنامه نويسي از API استفاده كنيم؟
بله میشه، اون کدی که بالا داده بودم بیشتر توابع API بودن.


پس مزيت برنامه هاي ويژوال سي نسبت به برنامه هاي زبان سي چي هست؟
من از نظر داشتن API گفتم وگرنه متمعنا اینا نسبت به هم مزیت هایی دارن


و آيا يادگيري API هاي ويندوز براي نوشتن برنامه هاي تحت ويندوز لازم است؟
بزارین اینطور بگیم ++C ذاتا تحت داسه (Console) و مطمعنا تا الان شما با خیلی از امکانات این زبان آشنا هستین
و برای بقیه کارها مثل اضافه کردن اینترفیس و ... باید یا از API استفاده کنیم یا کتابخانه های دیگه مثل MFC و ...
خیلی از برنامه های بزرگ در دنیا به همین شکل تولید میشن.
و در مورد سوالتون که آیا API لارم دارین به نظر من بهتره که خودتون به این سوال جواب بدین،
خودتون به نتیجه برسین که آیا لازم دارین یا نه خیلی بهتره تا کسی دیگه به شما بگه

شاد باشید

mahdi7s
15-12-2008, 14:36
سلام

اگر كسي كار با mfc رو ياد بگيره ديگه كاري به كار كردن مستقيم با api ها نداره؟

=========
آيا زبان ويژوال سي mfc رو پشتيباني مي كنه؟

===============

و جدا از بحث هاي اين تاپيك اين سوال برام پيش اومد ---- >

مزيت برنامه هاي ويژوال سي نسبت به برنامه هاي زبان سي چي هست؟

***************************************از كمكتون ممنونم************************************** ****

hoax3r
15-12-2008, 19:57
سلام
 

اگر كسي كار با mfc رو ياد بگيره ديگه كاري به كار كردن مستقيم با api ها نداره؟
mfc خیلی از api ها رو پوشش داده که می تونید استفاده کنین ولی خوب باز api هایی هست که تو mfc نیست.
 

آيا زبان ويژوال سي mfc رو پشتيباني مي كنه؟
البته چند بار گفته بودم زبانی به نام ویژوال سی نداریم به هر حال اگه منظورتون محیط ++vc هست بله پشتیبانی میشه
در واقع تنها محیطی که این کتابخانه رو پشتیبانی می کنه ++vc است که در این صورت بهتره آخرین ورژن ++vc رو در نصب کنید
که کلاسها و توابع بیشتری بهش اضافه شده
 

و جدا از بحث هاي اين تاپيك اين سوال برام پيش اومد ---- >
 
مزيت برنامه هاي ويژوال سي نسبت به برنامه هاي زبان سي چي هست؟
 
مثل سوال بالایی هنوز منظورتون رو از ویژوال سی نمیدونم چیه؟؟
 
شاد باشید

mahdi7s
16-12-2008, 12:49
سلام

از اين كه به سوالاتم پاسخ دادين ممنونم

و در مورد سوال آخر منظورم از برنامه هاي ويژوال سي برنامه هايي هست كه داراي اينتر فيس هستند واز برنامه هاي سي منظورم برنامه هايي هست كه تحت داس اجرا ميشن و كنسولي هستن.

hoax3r
16-12-2008, 14:07
سلام

در مورد مزیت چیزی که آشکاره تنها مزیت در برنامه های دارای اینترفیس داشتن رابط کاربری هست.
این خودش مزیت بزرگی مثلا خیلی از توابع gdi که برای کار های گرافیکی مثل رسم شکل و تصویر و .. هست
در محیط کنسولی قابل استفاده نیستن. و چیزای دیگه که الان به ذهنم نمیرسه

شاد باشید