вот и все, получаю готовый драйвер, протестировал работает без ошибок на всех WINx32 платформах.
Попробовал перенести это в Embarcadero RAD Studio Delphi 10.4 , были проблемы с переездом но решаемы, проект полностью переехал на Embarcadero RAD Studio. Собрал заново dcc32.exe, rlink32.dll, system.dcu и sysinit.dcu эти файлы и приступил к компиляции.
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 - ОК
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 все компилится и хорошо работает. Прикрепляю файлы
Вопрос
newcleaning newcleaning
Имеется проект готовый на Delphi 3, средствами delphi 3 там создается и компилится файл драйвер MyDrive.pas для клавиатуры
Попробовал перенести это в Embarcadero RAD Studio Delphi 10.4 , были проблемы с переездом но решаемы, проект полностью переехал на Embarcadero RAD Studio. Собрал заново dcc32.exe, rlink32.dll, system.dcu и sysinit.dcu эти файлы и приступил к компиляции.
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
Ссылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.