Защо не мога да пусна някой код на Turbo C ++ в Windows 10?


Отговор 1:

Добрият стар TurboC 3 имаше своята праведна част във войната и сега го оставете в мир. : P

TurboC3 е 16-битово MS-DOS приложение. Този клас изпълними файлове се поддържаше от Windows до Win98. След това, с Windows NT, Microsoft направи избор за 32-битови изпълними файлове като своя родна форма и поддържаше по-стари 16-битови приложения чрез нареченото като NT VDM (Virtual DOS Machine), което взе всяка 16-битова инструкция от изпълним файл, преобразуван той е на 32-битова инструкция и след това го предава на основата на 32-битова NT система. Те осигуриха обратна съвместимост, но 16-битовите изпълними файлове бяха оттеглени.

По този начин, всяко 16-битово приложение не може да работи на която и да е машина на Win NT като независим процес. Можете да видите VDM в работещи процеси, но не и TurboC 3. Работи се под VDM, а не като независим процес.

С Win 8 Windows официално изпусна VDM от системата, прекратявайки поддръжката на 16-битови изпълними файлове. Ето защо не можете да стартирате TurboC директно на всеки Windows по-късно от 8.

Също така, TurboC 3 използва собствен компилатор, "TCC", който отново е компилатор за C / C ++ до 16 битови DOS изпълними файлове. Каквото и да направите, той също ще бъде изпълнен с 16 бита и няма да работи на най-новите системи.

В много колежи в Индия TurboC 3 все още се използва. Понякога те се придържат към отдавна мъртвия XP само за това, или някои отиват дори по-далеч, за да инсталират някои трети 16-битови емулатори на MS DOS приложения, за да го върнат да работи в Windows 8/10! Това наистина е катастрофа.

Наричам го бедствие, защото имаше много важни допълнения към граматичния арсенал на езика C ++ след пускането на TurboC3, който компилаторът TurboC 3 няма да разпознае. Технически погледнато, TurboC разбира C-90. Тогава имаше C-99. Тогава С-11. Сега преминаваме към C-14. TurboC3 пропуска много сега. Не се поддържат дори пространства с имена, няма нови заглавки ..., така че технически погледнато в модерно време, това е просто твърде остаряло.

Научих първите си програми по него и много ми хареса, тогава, но трябва да продължим! :Д

Превключете към всеки модерен пакет IDE. Това е решението. Ако се учите (и най-вероятно сте, ако искате да използвате TC3, няма наранявания: p) бих ви насочил към кръвопролитието DevCpp. Чисто, лесно, направо.

Update: -

Отговорът е написан през януари 2017 г., когато

C ++ - 14

беше настоящият стандарт. Към тази актуализация, т.е. ноември 2019 г., настоящият стандарт C ++ е

C ++ 17

и през следващата година

C ++ 20

вероятно ще започне да превзема.

Също така, аз бих предложил Code :: Blocks като хубав C ++ IDE за по-здравословно преживяване на C ++.