Обеспечение совместимости DEV ++ с кодом / заголовками из Turbo Stack Overflow

Я работаю на фабрике, где 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 часов самоучки с и с ++.

Любая помощь приветствуется.

ОБНОВИТЬ
Очень полезная информация Кажется, что это не будет возможно, учитывая, насколько устаревшее оборудование и какие у меня есть ограничения на этот проект, но спасибо всем за ваш вклад.

2

Решение

Это скорее «длинный комментарий», чем прямой ответ на ваш вопрос, пытающийся помочь вам лучше понять, что МОЖЕТ стать вашей проблемой в вашем проекте.

Я бы лично выбрал более «профессиональный» инструмент развития уровня. Либо Eclipse (положительным моментом является то, что он является портативным и выглядит / чувствует себя одинаково, используете ли вы Windows или Linux), XCode (работает только на Mac) или Visual Studio (который работает только на Windows). Это полнофункциональные интегрированные среды разработки, и все они очень удобны. Все они бесплатны или почти бесплатны.

Компиляция старого кода, который написан для DOS в современный компилятор с современной ОС, может быть довольно сложной задачей, в зависимости от того, что делает приложение, и насколько, исходя из предположений о его среде, код написан:

  • это предполагает int 16 бит
  • он вызывает напрямую в DOS для получения информации о файле, открытия / чтения / записи / закрытия файлов
  • это делает сырой ввод с клавиатуры
  • тыкает ли символы и / или пиксели прямо на экран
  • это использует far а также near указатели, есть ли драйвероподобные компоненты, которые взаимодействуют напрямую с аппаратными прерываниями

Одна вещь, которая выделяется в вашем вопросе, это упоминание graphics.hЯ считаю, что это очень специфично для Borland. Это означает, что вам придется написать свои собственные функции замены — либо замена graphics.h набор функций (я ожидаю, что большая часть функциональности доступна в любой современной ОС, это скорее случай «как это называется и что мне нужно для вызова этой функции»). Это может быть довольно сложной задачей само по себе.

Сложная часть здесь состоит не только в том, чтобы определить, что делает код, но и заменить его похожей логикой, которая делает то же самое в вашей новой среде.

И, конечно, все зависит от того, что вы хотите сделать с кодом, насколько хорошо он написан — является ли он модульным, выполняет ли каждая функция только одно и только одно, или есть функции, которые «Это вычисляет значение , а затем считывает некоторые данные с диска, затем выполняет некоторые операции ввода-вывода на экран, а затем обращается к некоторому внешнему оборудованию, и, поскольку он часто получает вызовы, также обновляет время на экране, если оно изменилось «.

3

Другие решения

Большинство заголовков из старой Turbo C, в некотором смысле, являются просто MSDOS API. Поэтому нет смысла пытаться использовать эти заголовки в любой другой среде, и вы не можете перенести их на компилятор Windows. Так же, graphics.h предназначен для специфичной для Borland графической библиотеки DOS под названием BGI и не будет работать на любом другом компиляторе.

Следует отметить, что старый Turbo C ++ (я полагаю, версия 3.1?) Не очень следовал стандартам C или C ++. Используемая версия C ++ полностью античная.

Также обратите внимание, что Dev C ++ IDE устарел и больше не обновляет компилятор GCC. IDE CodeBlocks является лучшей альтернативой.

4

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector