Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Программа из нескольких файлов под DOS


Автор: Kylinar 7.5.2010, 16:14
Доброго времени суток всем!
Есть задача создать программу на плк под управлением DOS. Даже эта программа уже есть и работает. Но вот с недавних пор появилась необходимость добавить функционал, при чем таким образом, что на диске должен быть файл настроек типа *.cfg или прочий, который должен содержать имена устройств с которыми контроллер должен работать и прочие настройки. Реализация этого дела не вопрос. Но вот исходя из названий приборов записанных в данный файл программа должна подгружать соответствующие функции из другого внешнего файла типа *.dll. Вот как это дело реализовать в Turbo C 2 под DOS? Что-то нигде не могу найти, хотя думаю что эта возможность быть должна иначе уж совсем грустно... 

Автор: bsa 7.5.2010, 19:24
Kylinar, такая возможность есть. DLL под DOS называется оверлей. Если я не ошибаюсь, в компиляторах от Borland есть возможность работы с ними. Вот только я не уверен, что в версии 2.0 она была. В 3.1 есть точно.

Автор: borisbn 7.5.2010, 19:26
Dll - исключительно win32 код. В дос были файлы *.ovl (оверлеи). Думаю, прийдётся переделывать программу под windows :(

Автор: Kylinar 8.5.2010, 12:43
Блин:( Вот незадача-то... Возможности перейти на windows нет никакой. Исключительно DOS и TC2... Оверлеи значит, поищу литературу, может где и найду... Можно конечно, для каждого прибора сделать функции внутри основной программы, но ведь даже с одним уже проблемы с памятью возникают! Тут никак не пролезет данный вариант, тем более что характеристики контроллера следующие: AMD80188 40 Mhz, 256 Kb RAM, 512 Flash ROM и  2 Kb EEPROM!!!! А приборов с которыми нужно работать около 20-и. smile 

Автор: Kylinar 8.5.2010, 13:48
Похоже совсем грустно :-(

Автор: bsa 10.5.2010, 16:30
Если алгоритмы работы с приборами не очень сложные и скоростные требования не поджимают, то напиши простейший интерпретатор скриптового языка. Поддержку приборов пиши на этом языке.

Автор: Kylinar 10.5.2010, 22:04
TSR программки которые будут вызываться прерыванием, а данные и команды передавать через общую структуру... Такое уже проделывал загружая TSR через autoexec а затем основную прогу, которая передавала указатель на структуру, флаги команд в резидента и прочее. Теперь только нужно сделать загрузку резидентов исходя из конфигурации. В принципе получится тоже самое, но в дос свои заморочки с загрузкой:( Не охото копошиться в "старом", надеялся что есть другой вариант...  smile 

Автор: xvr 11.5.2010, 12:01
Делал загружаемые модули под ДОС (по сути аналог .dll). Был использован Borland C++ 3.1
Загрузка делалась функцией 0x4B03 прерывания 21h (загрузка образа exe без его запуска)

Исходники брать http://www.microart.ru/Uniprog/Program/uniprog-src.rar и http://www.microart.ru/Uniprog/Program/unip-parts.rar

Собственно загрузка находится в файлах core.*, библиотека для создания модулей - в udk\STARTUP\*

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)