Какой современный компилятор C я могу использовать для создания этой программы MS-DOS 1992 года? - PullRequest
4 голосов
/ 13 октября 2011

Мне дали исходный код для изменения программы MS-DOS, созданной еще в 1992 году. У меня есть файл EXE, и он работает нормально, но мне нужно изменить исходный код.Исходный код нуждается в следующих заголовках для компиляции.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <dos.h>
#include <dir.h>
#include <alloc.h>
#include <ctype.h>
#include <string.h>
#include <mem.h>
#include <values.h>

Кто-нибудь знает, что использовалось, и существуют ли современные компиляторы, которые могут справиться с этим?Я пытался с Visual Studio 2010 и GCC "из коробки", но это не удается, потому что некоторые заголовки отсутствуют (dir.h, alloc.h, mem.h, values.h)

Ответы [ 5 ]

8 голосов
/ 13 октября 2011

Может быть интереснее спросить, что нужно иметь объявлениям функций, объявлениям типов, объявлениям глобальных переменных и макросам . Конкретное расположение этих вещей в заголовках не очень интересно, если они все есть.

Итак, закомментируйте оскорбительный #includes и позвольте компилятору пожаловаться на биты, которых ему не хватает. Тогда Вы знаете, что ищете.

5 голосов
/ 13 октября 2011

Вы можете попробовать компилятор Open Watcom , который является одним из немногих относительно современных компиляторов, который создает 16-битные исполняемые файлы DOS. Кроме поиска старого компилятора MS или Borland (или того, что использовалось изначально), это, вероятно, самый простой путь.

Если вы хотите перестроить для другой платформы вместо повторной сборки для DOS, вам, вероятно, придется внести много изменений в саму программу. Это может стоить, но может потребовать много работы и неожиданных головных болей.

4 голосов
/ 13 октября 2011

Вы можете попробовать использовать DJGPP .Согласно документации , в ней могут быть нужные заголовки.

3 голосов
/ 13 октября 2011

Есть Turbo C ++ 1.01 , не такой уж современный, хотя, похоже, также есть все эти заголовочные файлы.Я до сих пор иногда использую его.

1 голос
/ 13 октября 2011

а) Удалить все файлы заголовков б) попробуйте скомпилировать c) Посмотрите, какой заголовочный файл имеет неопределенную функцию / тип int г) Добавить заголовочный файл д) повторить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...