| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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-и. |
| Автор: Kylinar 8.5.2010, 13:48 |
| Похоже совсем грустно :-( |
| Автор: bsa 10.5.2010, 16:30 |
| Если алгоритмы работы с приборами не очень сложные и скоростные требования не поджимают, то напиши простейший интерпретатор скриптового языка. Поддержку приборов пиши на этом языке. |
| Автор: Kylinar 10.5.2010, 22:04 |
| TSR программки которые будут вызываться прерыванием, а данные и команды передавать через общую структуру... Такое уже проделывал загружая TSR через autoexec а затем основную прогу, которая передавала указатель на структуру, флаги команд в резидента и прочее. Теперь только нужно сделать загрузку резидентов исходя из конфигурации. В принципе получится тоже самое, но в дос свои заморочки с загрузкой:( Не охото копошиться в "старом", надеялся что есть другой вариант... |
| Автор: 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\* |