Как исправить сбой приложения при запуске при использовании 64-битного bass.dll в 64-битном проекте Delphi?

Я не могу запустить мое 64-битное приложение Delphi с 64-битной версией bass.dll. Я использую Delphi XE3 для создания своего приложения.

Приложение разбилось, чтобы начать с 0xc000007b, Сообщения отладчика:

Начало потока: ID потока: 7692. Процесс Project1.exe (7444) Запуск процесса: D:\svn\preplayer\Project1.exe. Базовый адрес: $0000000076DBC500. Процесс Project1.exe (7444) Загрузка модуля: Project1. Имеет отладочную информацию. Базовый адрес: $0000000000400000. Процесс Project1.exe (7444) Загрузка модуля: ntdll.dll. Нет отладочной информации. Базовый адрес: $0000000076D90000. Процесс Project1.exe (7444) Загрузка модуля: snxhk64.dll. Нет отладочной информации. Базовый адрес: $0000000070D20000. Процесс Project1.exe (7444) Загрузка модуля: KERNEL32.dll. Нет отладочной информации. Базовый адрес: $00000000766B0000. Процесс Project1.exe (7444) Загрузка модуля: KERNELBASE.dll. Нет отладочной информации. Базовый адрес: $000007FEFD4B0000. Процесс Project1.exe (7444) Загрузка модуля: OLEAUT32.dll. Нет отладочной информации. Базовый адрес: $000007FEFEFC0000. Процесс Project1.exe (7444) Загрузка модуля: ole32.dll. Нет отладочной информации. Базовый адрес: $000007FEFD660000. Процесс Project1.exe (7444) Загрузка модуля: msvcrt.dll. Нет отладочной информации. Базовый адрес: $000007FEFE670000. Процесс Project1.exe (7444) Загрузка модуля: GDI32.dll. Нет отладочной информации. Базовый адрес: $000007FEFD870000. Процесс Project1.exe (7444) Загрузка модуля: USER32.dll. Нет отладочной информации. Базовый адрес: $0000000076920000. Процесс Project1.exe (7444) Загрузка модуля: LPK.dll. Нет отладочной информации. Базовый адрес: $000007FEFEE10000. Процесс Project1.exe (7444) Загрузка модуля: USP10.dll. Нет отладочной информации. Базовый адрес: $000007FEFEE90000. Процесс Project1.exe (7444) Загрузка модуля: RPCRT4.dll. Нет отладочной информации. Базовый адрес: $000007FEFE9B0000. Процесс Project1.exe (7444) Загрузка модуля: ADVAPI32.dll. Нет отладочной информации. Базовый адрес: $000007FEFEC90000. Процесс Project1.exe (7444) Загрузка модуля: SECHOST.dll. Нет отладочной информации. Базовый адрес: $000007FEFEAE0000. Процесс Project1.exe (7444) Загрузка модуля: VERSION.dll. Нет отладочной информации. Базовый адрес: $000007FEFC300000. Процесс Project1.exe (7444) Загрузка модуля: COMCTL32.dll. Нет отладочной информации. Базовый адрес: $000007FEFA2B0000. Процесс Project1.exe (7444) Загрузка модуля: SHELL32.dll. Нет отладочной информации. Базовый адрес: $000007FEFD8E0000. Процесс Project1.exe (7444) Загрузка модуля: SHLWAPI.dll. Нет отладочной информации. Базовый адрес: $000007FEFEB00000. Процесс Project1.exe (7444) Загрузка модуля: COMDLG32.dll. Нет отладочной информации. Базовый адрес: $000007FEFD5C0000. Процесс Project1.exe (7444) Загрузка модуля: WINSPOOL.DRV. Нет отладочной информации. Базовый адрес: $000007FEF96A0000. Процесс Project1.exe (7444) Загрузка модуля: BASS.dll. Нет отладочной информации. Базовый адрес: $0000000180000000. Процесс Project1.exe (7444) Загрузка модуля: WINMM.dll. Нет отладочной информации. Базовый адрес: $000007FEFAED0000. Процесс Project1.exe (7444) Загрузка модуля: MSACM32.dll. Нет отладочной информации. Базовый адрес: $000007FEFAD00000. Процесс Project1.exe (7444)

БАСС для Win64 (x64)

Как я могу заставить его работать? Кто-нибудь испытывал такую ​​же проблему?

1 ответ

Решение

Код ошибки 0xc000007b - STATUS_INVALID_IMAGE_FORMAT. Наиболее распространенная причина этого - когда загрузчик пытается загрузить 32-битную DLL в ваш 64-битный процесс. Используйте Dependency Walker в режиме профиля, чтобы выяснить, какая DLL виновата.

Другие вопросы по тегам