Перейти к содержанию
Fire Monkey от А до Я
  • 0

DCC32.EXE, компилятор командной строки Delphi


newcleaning newcleaning

Вопрос

Имеется проект готовый на Delphi 3, средствами delphi 3 там создается и компилится файл драйвер MyDrive.pas для клавиатуры

  1. dcc32.exe, rlink32.dll, system.dcu и sysinit.dcu - собственно компилятор Delphi3 с сопутствующими файлами
  2. dcc32.exe -jP -$A-,B-,C-,D-,G-,H-,I-,J-,L-,M-,O+,P-,Q-,R-,T-,U-,V-,W+,X+,Y- MyDrv.pas на выходе получаю файл  MyDrv.obj
  3. далее я этот файл просто конвертирую , компилирую сразу в MyDrv.sys 
  4. link.exe /NOLOGO /ALIGN:32 /BASE:0x10000 /SUBSYSTEM:NATIVE /DRIVER /FORCE:UNRESOLVED /ENTRY:DriverEntry$qqsxp13DRIVER_OBJECTxp14UNICODE_STRING MyDrv.obj /out:MyDrv.sys ntoskrnl.lib 
  5. вот и все, получаю готовый драйвер, протестировал работает без ошибок на всех WINx32 платформах.

 

Попробовал перенести это в Embarcadero RAD Studio Delphi 10.4 , были проблемы с переездом но решаемы, проект полностью переехал на Embarcadero RAD Studio. Собрал заново dcc32.exe, rlink32.dll, system.dcu и sysinit.dcu  эти файлы и приступил к компиляции.

  1. dcc32.exe -jP -$A-,B-,C-,D-,G-,H-,I-,J-,L-,M-,O+,P-,Q-,R-,T-,U-,V-,W+,X+,Y- MyDrv.pas на выходе получаю файл  MyDrv.obj - ОК
  2. link.exe /NOLOGO /ALIGN:32 /BASE:0x10000 /SUBSYSTEM:NATIVE /DRIVER /FORCE:UNRESOLVED /ENTRY:DriverEntry$qqsxp13DRIVER_OBJECTxp14UNICODE_STRING MyDrv.obj /out:MyDrv.sys ntoskrnl.lib  -  ERROR 

MyDrv.obj : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt - 

фатальная ошибка LNK1123: сбой при преобразовании в COFF: файл недействителен

Ладно, скачал утилиту https://agner.org/optimize/#objconv и конвертнул фаил 

с:\objconv -fcof -nr:uname:u_cos -nr:wname:cos MyDrv.o MyDrv.obj  затем снова

link.exe /NOLOGO /ALIGN:32 /BASE:0x10000 /SUBSYSTEM:NATIVE /DRIVER /FORCE:UNRESOLVED /ENTRY:DriverEntry$qqsxp13DRIVER_OBJECTxp14UNICODE_STRING MyDrv.obj /out:MyDrv.sys ntoskrnl.lib

LINK : error LNK2001: unresolved external symbol _DriverEntry$qqsxp13DRIVER_OBJE
CTxp14UNICODE_STRING
MyDrv.obj : error LNK2001: unresolved external symbol @$xp$4Word
MyDrv.obj : error LNK2001: unresolved external symbol @$xp$8SmallInt
MyDrv.obj : error LNK2001: unresolved external symbol @$xp$8Cardinal
MyDrv.obj : error LNK2001: unresolved external symbol @$xp$7Integer
MyDrv.obj : error LNK2001: unresolved external symbol @$xp$7Pointer
MyDrv.obj : error LNK2001: unresolved external symbol @$xp$4Byte
MyDrv.obj : error LNK2001: unresolved external symbol @$xp$8ByteBool
MyDrv.obj : error LNK2001: unresolved external symbol @$xp$9PWideChar
MyDrv.obj : error LNK2001: unresolved external symbol @$xp$9PAnsiChar
MyDrv.sys : fatal error LNK1120: 10 unresolved externals

 

Делаю вывод, что Delphi 10.4 портирует его не в MyDrv.obj формат, а во что-то иное..  как это выяснить ума не приложу, олазил все доки ВСЕ, информация упорно продолжает вводить в заблуждения.   Если есть у кого какие мысли то прошу помощи..

В ПРОТИВНОМ СЛУЧАИ ПРОСТО ПРИДЕТСЯ ВЫБРОСИТЬ ВСЕ DELPHI НАЧИНАЯ С DELPHI 7 И ВЫШЕ .. ИБО ОНИ НЕ РАБОТАЮТ КАК ЗАЯВЛЕНО , ИМИТАЦИЯ ФОРМ НА ЭКРАНЕ ЭТО НЕ РАБОТА ЯЗЫКА ПРОГРАММИРОВАНИЯ.  

На сборках  Delphi 2-3  все компилится и хорошо работает. Прикрепляю файлы

mydrive-delphi.rar

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

ну, если сходу, то это не совсем Delphi-проблема
https://learn.microsoft.com/ru-ru/cpp/error-messages/tool-errors/linker-tools-error-lnk1123?view=msvc-170
https://stackoverflow.com/questions/12267158/failure-during-conversion-to-coff-file-invalid-or-corrupt

везде речь идет о cvtres.
думаю, стоит сначала попытаться сделать все это не через DCC а через сборку в IDE
возможно за 30 лет, какие-то ключи изменились, вызванные функции переехали в другие DLL и всякое такое

p.s.
имитация форм на экране - конечно, не программирование. Вообще, все, что не mouse.sys - не программирование

Ссылка на комментарий
  • 0
В 05.01.2023 в 02:47, newcleaning newcleaning сказал:

В ПРОТИВНОМ СЛУЧАИ ПРОСТО ПРИДЕТСЯ ВЫБРОСИТЬ ВСЕ DELPHI НАЧИНАЯ С DELPHI 7 И ВЫШЕ .. ИБО ОНИ НЕ РАБОТАЮТ КАК ЗАЯВЛЕНО , ИМИТАЦИЯ ФОРМ НА ЭКРАНЕ ЭТО НЕ РАБОТА ЯЗЫКА ПРОГРАММИРОВАНИЯ.

Тогда добро пожаловать в курьеры)))

Ссылка на комментарий

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...