سلام
در اینجا سوالاتمان را درباره ی c++ می پرسیم:
خودم اولین سوالم رو می پرسم :
میشه کد سی پلاس پلاس کامپایل شده رو به صورت بوتیبل اجرا کرد؟
و این که یه کدی بنویسیم که با فشار دادن یه کلید ، یه فایل exe اجرا بشه ( به صورت بوتیبل)؟
هر سوال باید در یک تاپیک مجزا و صرفا در تخصصی ترین انجمن مرتبط با موضوع مطرح بشه، فرضا انجمن
برنامه نويسي و الگوريتم آن مرتبط با
موضوع سوالات برنامه نویسی هست، اما خودش زیر-انجمن هم داره، برای سوالات ++C یک زیر-انجمن با نام
C و هم خانواده هایش هست،
پس سوالات ++C رو در خود انجمن
برنامه نويسي و الگوريتم آن یا چند سوال رو یکجا و در یک تاپیک مطرح نکنید.
قوانین و محدودیت های ایجاد کردن مبحث جدید :
B1 - هر مبحث باید عنوانی داشته باشد که خلاصه ای از موضوع آن مبحث باشد، از عناوین مبهم و کلی استفاده نکنید.
B4 - اگر چندین سوال دارید که بهم مربوط نیستند، در مبحث های جداگانه مطرح شان کنید.
زمانی که چند سوال را در یک مبحث مطرح می کنید نمی توانید یک عنوان دقیق و با جزئیات انتخاب نمایید،در نتیجه ناچار می شوید که از یک عنوان نامناسب مثل "چند سوال در مورد فتوشاپ" استفاده کنید که خیلی مبهم و کلی است و مشخص کننده موضوع سوال شما نخواهد بود.
تاپیک منتقل گردید.
فایل های exe یک فرمت مشخص و استانداردی دارند، برای اجرا کردن شون نیاز به وجود یک سیستم عامل هست که فرمت این فایل های اجرایی رو پشتیبانی کنه.
همچنین فایل های exe و چه فایل های غیر exe به هر حال فایل اند، فایل وقتی مفهوم داره که سیستم فایل ای وجود داشته باشه و سیستم فایل و مدیریت اش
هم خودش جزئی از سیستم عامل ئه. پس نمیشه که حرفی از اجرا شدن یک فایل exe بزنید بدون اینکه سیستم عاملی ای اجرا شده باشه.
وقتی شما یک نرم افزار Bootable می سازید، کاری با فایل و فرمت exe ندارید. نرم افزار شما باید روی سکتور 0 دیسک و احیانا سکتور های بعدی ذخیره بشه،
اینجا دیگه اصلا صحبتی از فایل و فرمت exe نیست، چون وقتی کامپیوتر تازه روشن شده و می خواد Boot بشه اصلا سیستم عاملی در کار نیست.
شما می توانید با ++Turbo C یک فایل اجرایی ای بسازید که با روش هایی به عنوان کد قابل بوت شدن عمل کنه، اما اولا تبدیل اش به کد Bootable
مستقیم و یک مرحله ای نیست، ثانیا هر کدی این قابلیت رو نداره :
1) در ++Turbo C منوی ...Options > Compiler > Code Generation یک گزینه Model حافظه هست، نوع حافظه ای که مناسب کد های قابل بوت شدنه Tiny ئه،
از مدل حافظه Tiny استفاده کنید، فرمت خروجی اش هم exe نیست، com ئه.
2) در کد برنامه تون از هر نوع روتینی که بصورت مستقیم یا غیر مستقیم با سرویس های MS-DOS یا Windows سر و کار داره نباید استفاده کنید، به هیچ وجه.
مثلا فایل ها، چرا ؟ چون وقتی کد تون اجرا میشه، سیستم عاملی در کار نیست که سرویس هاش قابل اجرا باشه.
3) فایل اجرایی com که ساخته شد، باید محتویاتش با ساختار مشخصی در سکتور 0 دیسک قرار بگیره :
How to develop your own Boot Loader