Помогите с реализацией Win32 API под DOS

Софт только для использования в DOS

Помогите с реализацией Win32 API под DOS

Сообщение napoleon80386 » 29 дек 2011, 18:08

В данный момент имеются несколько реализаций Win32 API под MS-DOS/Windows 3.x. Это Win32s, HX-DOS Extender, WDOSX и ещё несколько (незначительных) реализаций. Мне вдруг вздумалось расширить функционал хотя бы чего-нибудь. Win32s по причине отсутствия исходных кодов, невозможности загрузить даже FAR 1.00 beta и отсутствия аналога библиотеки w32scomb.dll отпал. WDOSX эмулирует слишком мало функций Win32 API. Поэтому я начал модифицировать HX-DOS Extender. Благо, он развивается (последняя версия 2.17 датируется 2011 годом), его исходный код открыт и я смог запустить с его помощью DOSBox и FAR 1.00 beta.
Вся модификация сводится к дописыванию недостающих функций. Их я могу узнать по файлам hxstderr.log, которые имеют такой формат:

dpmild32: import not found: DlgDirListA
dpmild32: import not found: SetScrollPos
dpmild32: import not found: SetScrollRange
dpmild32: file USER32.DLL
dpmild32: c:\hx\vesa32.dll: cannot resolve imports

Так я могу найти необходимые функции. Если надо, мне укажут, какого файла не хватает. А эти функции можно взять из дизассемблированных DLL, либо дописать их самостоятельно по образцу Wine/ReactOS/дизассемблированных DLL. Однако при попытке компиляции DKRNL32.DLL с некоторыми дописанными функциями я встретился с неразрешимой проблемой.
Имеется такой BAT файл:

@echo off
rem alternative way to create DKRNL32.DLL
rem uses JWasm, MS lib and MS link
del RELEASE\*.obj
copy ..\NTLFNHLP\RELEASE\int21lfn.obj RELEASE\
jwasm.exe -zze -coff -nologo -Sg -D_KERNEL32_=1 -I..\..\Include -D?FLAT=1 -Fl=RELEASE\ -Fo=RELEASE\ *.asm
cd RELEASE
lib /NOLOGO *.obj /OUTKRNL32S.LIB
lib /NOLOGO DKRNL32S.LIB /REMOVE:DKRNL32.OBJ /OUT:DKRNL32S.LIB
link /NOLOGO DKRNL32.obj DKRNL32S.LIB /DLL /OUT:DKRNL32.DLL /DEF:..\DKRNL32.DEF /MAP /MERGE:.BASE=.data /OPT:NOWIN98
cd ..
jwasm.exe -coff -nologo -Sg -D_KERNEL32_=1 -I..\..\Include -D?FLAT=1 -Fl=SBEMU\ -Fo=SBEMU\ -D?DIRECTDISP=1 thread.asm thread3.asm
cd SBEMU
copy ..\RELEASE\DKRNL32S.LIB .
lib /NOLOGO DKRNL32S.LIB THREAD.OBJ THREAD3.OBJ /OUT:DKRNL32S.LIB
link /NOLOGO ..\RELEASE\DKRNL32.obj DKRNL32S.LIB /DLL /OUTKRNL32.DLL /DEF:..\DKRNL32.DEF /MAP /MERGE:.BASE=.data /OPT:NOWIN98
cd ..

Как видите, здесь нужны JWasm, MS lib и MS link. Первая штука у меня имеется, а вот насчёт второй и третьей я даже не представляю, что это такое и где их искать. Дайте ссылку на необходимые файлы, пожалуйста. Заранее спасибо
Последний раз редактировалось napoleon80386 30 сен 2023, 23:41, всего редактировалось 1 раз.
Only MS-DOS 7.10, only Arachne 1.95
80386 - это не рандомные цифры, а номер первого 32-битного процессора от Intel.
http://winedos.ucoz.ru/ - эмулятор Win32 API под DOS
napoleon80386
Даунгрейдер
 
Сообщения: 6
Зарегистрирован: 29 дек 2011, 18:01

MS LIB и LINK

Сообщение SergeCpp » 29 дек 2011, 19:28

Последний раз редактировалось SergeCpp 30 сен 2023, 23:41, всего редактировалось 1 раз.
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 585
Зарегистрирован: 11 апр 2011, 12:49
Откуда: At Home


Вернуться в Программы для DOS

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4