Я работаю на фабрике, где 80% нашего оборудования использует интерфейс MS-DOS. Никто из наших инженеров не имеет опыта программирования на c / c ++, и было предложено добавить некоторые функции в интерфейс машин. Наша группа автоматизации отказалась от платформы MS-DOS в пользу средств управления Allen-Bradley. Я чувствую себя честолюбивым и решил заняться этим проектом, хотя у меня почти нет опыта работы с c / c ++.
На вопрос:
Все программирование было написано и скомпилировано в Turbo C ++. Я бы предпочел использовать DEV ++ по разным причинам (простота использования, дополнительные заголовки, более развитая платформа C ++ и т. Д.). Проблема в том, что существующее программирование в значительной степени опирается на нестандартные заголовки из TC ++. Существует около 10 заголовков, недоступных в DEV ++ в исходном коде, и перезапись кода с использованием более современных конструкций невозможна; мы потеряли бы ту небольшую поддержку, которую мы имеем от нашего AG, времени, т. д.
Есть ли способ добавить все заголовки из TC ++ в DEV ++? Например, добавление файла graphics.h в DEV ++ и он будет полностью функциональным? Я попытался добавить его в папку include, вызвав его с помощью #include «graphics.h», и, если DEV ++ удается его распознать, он генерирует кучу ошибок компиляции, поскольку не распознает внутренние команды в graphics.h. файл.
К сожалению, я не могу включить пример кода из этого проекта из-за политики неразглашения и копирования-записи.
Мой опыт программирования:
плескаться в RSLogigx500,5000; Arduino IDE (не судите); Паркер 6К; PanelView; ~ 40 часов самоучки с и с ++.
Любая помощь приветствуется.
ОБНОВИТЬ
Очень полезная информация Кажется, что это не будет возможно, учитывая, насколько устаревшее оборудование и какие у меня есть ограничения на этот проект, но спасибо всем за ваш вклад.
Это скорее «длинный комментарий», чем прямой ответ на ваш вопрос, пытающийся помочь вам лучше понять, что МОЖЕТ стать вашей проблемой в вашем проекте.
Я бы лично выбрал более «профессиональный» инструмент развития уровня. Либо Eclipse (положительным моментом является то, что он является портативным и выглядит / чувствует себя одинаково, используете ли вы Windows или Linux), XCode (работает только на Mac) или Visual Studio (который работает только на Windows). Это полнофункциональные интегрированные среды разработки, и все они очень удобны. Все они бесплатны или почти бесплатны.
Компиляция старого кода, который написан для DOS в современный компилятор с современной ОС, может быть довольно сложной задачей, в зависимости от того, что делает приложение, и насколько, исходя из предположений о его среде, код написан:
int
16 битfar
а также near
указатели, есть ли драйвероподобные компоненты, которые взаимодействуют напрямую с аппаратными прерываниямиОдна вещь, которая выделяется в вашем вопросе, это упоминание graphics.h
Я считаю, что это очень специфично для Borland. Это означает, что вам придется написать свои собственные функции замены — либо замена graphics.h
набор функций (я ожидаю, что большая часть функциональности доступна в любой современной ОС, это скорее случай «как это называется и что мне нужно для вызова этой функции»). Это может быть довольно сложной задачей само по себе.
Сложная часть здесь состоит не только в том, чтобы определить, что делает код, но и заменить его похожей логикой, которая делает то же самое в вашей новой среде.
И, конечно, все зависит от того, что вы хотите сделать с кодом, насколько хорошо он написан — является ли он модульным, выполняет ли каждая функция только одно и только одно, или есть функции, которые «Это вычисляет значение , а затем считывает некоторые данные с диска, затем выполняет некоторые операции ввода-вывода на экран, а затем обращается к некоторому внешнему оборудованию, и, поскольку он часто получает вызовы, также обновляет время на экране, если оно изменилось «.
Большинство заголовков из старой Turbo C, в некотором смысле, являются просто MSDOS API. Поэтому нет смысла пытаться использовать эти заголовки в любой другой среде, и вы не можете перенести их на компилятор Windows. Так же, graphics.h
предназначен для специфичной для Borland графической библиотеки DOS под названием BGI и не будет работать на любом другом компиляторе.
Следует отметить, что старый Turbo C ++ (я полагаю, версия 3.1?) Не очень следовал стандартам C или C ++. Используемая версия C ++ полностью античная.
Также обратите внимание, что Dev C ++ IDE устарел и больше не обновляет компилятор GCC. IDE CodeBlocks является лучшей альтернативой.