Использование Win32 в DOS

3414
StackUnderflow

Можно ли запустить среду Win32 или запустить программы Win32 из DOS, не запуская Windows GUI?

Я использую ПК с Windows 98, который загружается в режиме DOS с дискеты.

РЕДАКТИРОВАТЬ:

Я хочу запускать программы командной строки. Некоторые из них - Digital Mars C и .NET Framework.

6

2 ответа на вопрос

10
haimg

Нет поддерживаемых Microsoft способов сделать это

Графический интерфейс Windows нельзя отделить от ядра и библиотек времени выполнения, которые поддерживают программы Win32 (в Windows 98).

Вы можете получить Windows без графического интерфейса, только используя режим установки Server Core в Windows Server 2008.

Сторонняя эмуляция Win32 для DOS

Существует программное обеспечение, которое эмулирует Win32 API и позволяет запускать консольные программы Windows под DOS. Например, домашняя страница HX DOS Extender гласит:

HX DOS-Extender - это бесплатный DOS-расширитель со встроенной поддержкой формата файлов Win32 PE. Обычно целью расширителя DOS является сделать функции защищенного режима доступными для приложений DOS. HX полностью поддерживает эту цель, но идет дальше. Уровень эмуляции Win32 API является частью HX, которая позволяет многим консольным приложениям Win32 работать в DOS.

Digital Mars C ++ специально поддерживается HX DOS Extender, однако .NET глубоко интегрирован в Windows. Я сомневаюсь, что вы сможете запускать программное обеспечение .NET на эмуляторе.

Предупреждение, возможна загрузка вредоносного ПО в HX DOS Extender!

По-видимому, на веб-сайте HX DOS Extender есть что-то подозрительное с загрузками. Отчет Virustotal кажется мне очень подозрительным, большинство антивирусов сообщают о каком-либо вредоносном ПО внутри.

+1 DOS в Windows 98 - 16 бит. Windows GUI - это 32-битная оболочка. Для Windows 3.1 было несколько взломов библиотеки Win32, но это никогда не распространялось на DOS (AFAIK). Trav 12 лет назад 0
Ничего себе, +1 для HX DOS Extender, это замечательная (и с открытым исходным кодом!) Программа, о которой я никогда раньше не слышал. Breakthrough 12 лет назад 0
Попробовал HX, и он отлично запустил DigitalMarsC, хотя я еще ничего не пытался скомпилировать. Я также попытался запустить исполняемый файл .NET с ним, и он сказал мне, что отсутствуют библиотеки DLL, так что это может потребовать некоторого взлома, чтобы заставить работать. Спасибо за Ваш ответ! ВАЖНОЕ ПРИМЕЧАНИЕ: в почтовом индексе HX-RT есть вирус, так что имейте это в виду, все, кто читал этот пост! StackUnderflow 12 лет назад 0
@StackUnderflow: Спасибо, что сообщили нам об этом. Я обновил свой пост и отправил письмо автору программы. haimg 12 лет назад 0
@Trav: Windows 9x GUI больше не был оберткой; он использует только DOS [в качестве загрузчика] (http://blogs.msdn.com/b/oldnewthing/archive/2007/12/24/6849530.aspx) и для обработки 16-разрядных драйверов. grawity 12 лет назад 2
@grawity Ваша включенная ссылка - отличный пост! Хотелось бы, чтобы я читал что-то подобное, когда я все еще использовал Windows 9x! Trav 12 лет назад 0
3
Synetech

Это зависит от программы Win32. Очевидно, что программы с графическим интерфейсом не могут работать по понятным причинам. Консольные приложения, с другой стороны, могут работать.


В 1998 году Крис Джонс написал программу для DOS под названием WinEM (ранее DOSCon ), которая пытается эмулировать Win32 API, чтобы консольные программы Windows могли запускаться под DOS. Согласно руководству, он, очевидно, намеревался поддерживать программы с графическим интерфейсом и даже игры Direct-X, но с версии 1.00 реализовал только базовые функции DX и управления окнами (т. Е. Этого было достаточно только для «привет, мир» в окно » ).

Я не могу найти более новые версии, поэтому я подозреваю, что это оказалось сложнее, чем он надеялся, и поэтому он отказался от проекта. Кроме того, поскольку программа была написана во времена Windows 98, она может (вероятно?) Не поддерживать более поздние версии Windows (2000+).