|
Программирование >> Перегруженные имена функций и идентификаторы
А также DOS/4G подобные : WDOSX (последняя версия 0.94, size ~12 Kb) DOS32A (последняя версия 4.30, size ~20 Kb) В чем отличия между DOS4GW и DOS4GW PRO? DOS4GW: используется в виде отдельного .EXE модуля, имеет ограничения по размеру виртуальной памяти (16 Мб), ограничение по общей используемой памяти (32 Мб) отсутствует поддержка некоторых DPMI вызовов (например 303h - allocate callback) отсутствует возможность писать TSRы отсутствует поддержка DLL, freeware 4GWPRO - встраивается в исполняемую программу ограничений в размере виртуальной памяти нет полная поддержка DPMI 1.0 поддержка DLL поддержка TSR стоит денег. DOS4G: не привязан к конкретному компилятору возможен запуск нескольких .EXEшников под одним экстендером поддержка DLL документирована обильная документация стоит больших денег. В процессе экспериментов выяснилось, что поддержка виртуальной памяти (VMM - virtual memory manager) и поддержка полного набора DPMI вызовов присутствуют не во всех вариантах 4GWPRO. Можно ли поиметь 4GWPRO даром? Да, можно. Для этого его надо вырезать из головы программы собранной с 4GWPRO. Обычно такая программа при запуске сама об этом сообщает. Однако не из любой программы можно получить полноценный экстендер. Ниже приведен список программ подвергшихся обрезанию и результаты. ACMAIN.EXE, DESCENT.EXE, HB5.EXE, HEROES.EXE дают версию 1.97 с полным набором прелестей. Размер: 217764 байта. ABUSE.EXE, BK.EXE, HEXEN.EXE, ROTT.EXE, TV.EXE (Terminal Velocity) дают версию 1.97 без VMM и поддержки расширенного набора DPMI. Размер: 157268 байт. ACRODOS.EXE (Acrobat reader for DOS) дает версию 1.97 с VMM, но без расширенного набора DPMI. Размер: 203700 байт. D4GRUN.EXE (из Watcom 10.0а) дает версию 1.96 без VMM, но с расширенной поддержкой DPMI (но судя по надписям внутри - это DOS4G, а не 4GWPRO). Размер: 154996 байт. DOOM2.EXE дает версию 1.95 без поддержек VMM и расширенного набора DPMI. Размер: 152084 байт. Как переделать программу, скомпилированную под DOS4GW для использования с полученным 4GWPRO? COPY /В 4GWPRO + OLD.EXE NEW.EXE Почему полученный 4GWPRO не дает использовать VMM, или не дает больше 16 Мб? Простое шаманство поможет:
Для 1.97 размером 217764 байта. 0001BFF8: (4 байта) размер виртуальной памяти по умолчанию. Можно ли использовать DLL c DOS4GW? Можно, это обеспечивает утилита DLLPOWER. Ищите в SimTelовских архивах файлы dllpr251.zip, dllpr254.zip и может быть уже есть более поздние. Я всю жизнь писал на Борланд-С, теперь решил перебраться на Ватком, как мне проще всего это сделать? Перенос ваших программ возможен, но скорее всего вам придется править ваш код. Начать можно с изменения int -> short. Ватком ругается на стандартные библиотечные функции, в то время как BC жует их нормально, что делать? Большинство программ, которые нормально работали под BC, будут нормально компилироваться и Ваткомом, нужно лишь немного изменить код, использующий специфичные функции, реализованные в BC, как расширение стандартной библиотеки. Для большинства таких функций есть аналогичная или подобная функция. Например, вместо gettime() следует использовать dos gettime(), вместо findfirst - dos find first, и так далее. Обратитесь к хелпу по BC, вы наверняка найдете имена аналогичных функций, запросив помощь по тем именам, которые не устроили компилятор Ваткома. Кроме того, следует помнить, что например random(num) не является стандартной функцией, а это просто макрос из stdlib.h, и вместо него можно использовать конструкцию типа (rand() % num).
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |