WinDos.PAS не найден

#delphi

#delphi

Вопрос:

Я ищу файл с именем WinDos.PAS, который недоступен в Delphi XE2. Это должна быть старая библиотека (я думаю, Delphi 1 или 2), но пока ничего не удалось найти…

Комментарии:

1. Просто удалите файл из списка и посмотрите, какие идентификаторы отсутствуют. Тогда вам придется придумать, как их как-то реализовать, используя современные функции. Ссылка, на которую указывает Андреас, кажется многообещающей, но не пытайтесь скопировать этот код. Вам следует подумать, как наилучшим образом реализовать недостающую функциональность в новом коде.

2. Знаете ли вы, что вы можете редактировать вопросы и добавлять комментарии. Мы продолжаем задавать вам вопросы в комментариях, но вы никогда не отвечаете. Если бы вы больше занимались, мы могли бы помочь вам лучше? Зачем вам нужно конвертировать в 64-разрядную версию? Windows 64 отлично запускает 32-разрядные программы. Или это действительно программа Delphi 1?

3. Просматривая код, на который ссылается Андреас, становится ясно, что это 16-разрядный код Windows 3.1. Эра Delphi 1. Я не могу поверить, что ваш исходный код — это Delphi 2, который был 32-разрядным. Вот почему я думаю, что вы пытаетесь обновиться до современного Delphi. Потому что 64-разрядная ОС не может запускать 16-разрядный код. Вам было бы проще сначала перенести на 32-разрядный Delphi до Unicode. Скажем, Delphi 2007. У вас есть права на использование этой версии при покупке XE2. Я не могу избавиться от ощущения, что мы могли бы помочь вам лучше, если бы вы были более откровенны.

4. Мой друг хочет запустить эту программу на 64-битной системе, которая выдает сбой, из-за которого она не может ее выполнить…. Я думал, что это 32-битная программа, но я не уверен. есть ли какая-либо возможность выяснить это?

5. Дэвид Хеффернан вводит вас в заблуждение. WinDos Turbo Pascal for Windows — это модуль обратной совместимости для целевой версии Windows 3.1. Вы должны переписать любой код в зависимости от него.

Ответ №1:

Поиск в Google выдал эту страницу в качестве одного из первых обращений.

Комментарии:

1. о, воспоминания, я помню это устройство (WinDos) из эпохи Turbo Pascal. это были хорошие времена. 🙂

2. Этот модуль не поможет. Возможно, он даже не будет компилироваться.

3. @Torbins: Ну, но это идеальный ответ на вопрос. Действительно, ОП спросил: «Где я могу найти WinDos.pas?»

4. Ах, модуль WinDOS в Turbo Pascal воспоминания о прошлых эпохах (список прерываний Ральфа Брауна) [ ctyme.com/rbrown.htm ] и такое… 🙂

5. @Andreas Rejbrand: Какова цель stackoverflow.com ? Это просто набор результатов поиска Google, которые просто вводят людей в заблуждение?

Ответ №2:

Функции в WinDos.pas были предназначены для вызова программных прерываний и выполнения различных функций операционной системы эпохи DOS. Вам это не нужно.

Все функции в WinDos.h следует заменить современными вызовами функций в RTL, включая функции для доступа к дате и времени. Этот модуль не был удален из XE2 или даже XE, но не был частью Delphi с версии 2.0.

После удаления модуля WinDos из предложения uses, как сказал Дэвид в комментарии, у вас есть два варианта; Либо реализовать свои собственные вспомогательные функции в виде однострочной функции:

 function GetArgCount:Integer;
begin
   result := ParamCount; 
end;
  

Или, что было бы еще лучше, найдите места, где GetArgCount вызывается, и измените его, чтобы просто вызвать современную функцию ParamCount . Мы называем это «модернизацией» вашего 16-разрядного кода era. Это 2011 год. Пришло время обновить ваш код.

Ответ №3:

Мой друг хочет запустить эту программу на 64-битной системе, которая выдает сбой, из-за которого она не может ее выполнить…. Я думал, что это 32-битная программа, но я не уверен. есть ли какая-либо возможность выяснить это?

Если ваша программа скомпилирована для использования WinDos.pas , то это 16-разрядная программа. Поскольку 64-разрядные версии Windows изначально не поддерживают 16-разрядные программы, вам придется найти другой способ.

  • Вы могли бы перенести программу с 16-разрядной версии на 32-разрядную, но это может потребовать много работы.
  • Ваш друг может установить так называемый «режим Windows XP», который является поддерживаемым Microsoft методом запуска старых 16-разрядных программ в 64-разрядной операционной системе.