Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Delphi 2010 и Windows 98


Автор: CHERRY 13.4.2010, 20:32
Прога, скомпиленная под Delphi2010, не работает под Win 98.
Требует более новую версию винды.
Есть ли возможность скомпилить прогу в режиме совместимости(эмулирования и т.д.) с Windows98?

Автор: CodeMonkey 13.4.2010, 21:50
Цитата(CHERRY @  13.4.2010,  20:32 Найти цитируемый пост)
Есть ли возможность скомпилить прогу в режиме совместимости(эмулирования и т.д.) с Windows98? 

Если только компилятором от Delphi 2007. 

В Win9x нет нормальной поддержки unicode, так что любая unicode программа работать там не будет.

Автор: CHERRY 13.4.2010, 22:34
У меня Turbo Delphi 2006. 
Все работает под старыми системами. Но у Delphi 2010 приятнее редактор. Да и мне показалось, что в ней как-то комфортней.
Думал буду компилить из под нее. Ну есть же директивы компилятора? Может поддержку юникоде можно отключть?
Моя прога не использует юникоде.

Автор: Matematik 13.4.2010, 23:53
CHERRY
http://www.embarcadero.com/products/delphi/frequently-asked-questions#15
Говорят нельзя.

Для Win98 есть http://en.wikipedia.org/wiki/MSLU
только сомневаюсь что его мжно прикрутить к Delphi

Автор: Alexeis 14.4.2010, 00:33
Цитата(Matematik @  13.4.2010,  22:53 Найти цитируемый пост)
только сомневаюсь что его мжно прикрутить к Delphi 

  Ну если переписать модуль Windows.pas (заменить константу с именем библиотеки kernel32.dll / user32.dll и т.д.) и перекомпилировать весь VCL который явно зависел от Windows.pas, то некоторый шанс есть. Хотя я думаю, что там реализовано не все и не факт, что хорошо отлажено.

Добавлено @ 00:33
Я бы не взялся за такое дело smile .

Автор: CodeMonkey 14.4.2010, 00:34
Цитата(CHERRY @  13.4.2010,  22:34 Найти цитируемый пост)
Моя прога не использует юникоде. 

Если компилируется в D2010, значит - использует. Там все контролы юникодные и String уникодный (2 байта на символ).

Цитата(CHERRY @  13.4.2010,  22:34 Найти цитируемый пост)
Может поддержку юникоде можно отключть?

Нет. Я же сказал: берите компилятор от D2007. http://andy.jgknet.de/blog/?page_id=160.

Автор: Akella 14.4.2010, 12:44
Цитата(CHERRY @  13.4.2010,  22:34 Найти цитируемый пост)
Моя прога не использует юникоде. 

с чего ты взял??

Добавлено через 40 секунд
Цитата(CHERRY @  13.4.2010,  22:34 Найти цитируемый пост)
У меня Turbo Delphi 2006. 
Все работает под старыми системами. Но у Delphi 2010 приятнее редактор. Да и мне показалось, что в ней как-то комфортней.
Думал буду компилить из под нее. Ну есть же директивы компилятора? Может поддержку юникоде можно отключть?
Моя прога не использует юникоде.

Не юникодЕ, а юникод.
Используй D2007.

Автор: CodeMonkey 14.4.2010, 13:10
Цитата(Alexeis @  14.4.2010,  00:33 Найти цитируемый пост)
Ну если переписать модуль Windows.pas

Теоретически, можно попробовать менять таблицу импорта у готовых программ, меняя импорт из kernel32, user32, etc на MSLU.

Но засада ещё та, да. Не факт, что заработает, а кроме того, нативную версию придётся тоже пускать через MSLU, потому что некоторые функции ведут себя по-разному в MSLU и нативно (сделано так, чтобы поведение было однородным в Win9x и NT).

Автор: Alexeis 14.4.2010, 16:26
Цитата(CodeMonkey @  14.4.2010,  12:10 Найти цитируемый пост)
Теоретически, можно попробовать менять таблицу импорта у готовых программ, меняя импорт из kernel32, user32, etc на MSLU.

  Да, это идея. Написать маленькую консольную тулзу и запускать ее как пост билд евент. Правда после этого думаю придется ровнять смещения секций идущих после секции импорта.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)