如何在64位Delphi项目中使用64位bass.dll时修复启动时的应用程序崩溃?

时间:2013-02-02 05:40:05

标签: delphi delphi-xe3 win64 bass.dll

我无法使用the 64-bit version of bass.dll运行我的64位Delphi应用程序。 我正在使用Delphi XE3来构建我的应用程序。

应用程序崩溃以0xc000007b开头。调试器消息:

Thread Start: Thread ID: 7692. Process Project1.exe (7444)
Process Start: D:\svn\preplayer\Project1.exe. Base Address: $0000000076DBC500. Process Project1.exe (7444)
Module Load: Project1. Has Debug Info. Base Address: $0000000000400000. Process Project1.exe (7444)
Module Load: ntdll.dll. No Debug Info. Base Address: $0000000076D90000. Process Project1.exe (7444)
Module Load: snxhk64.dll. No Debug Info. Base Address: $0000000070D20000. Process Project1.exe (7444)
Module Load: KERNEL32.dll. No Debug Info. Base Address: $00000000766B0000. Process Project1.exe (7444)
Module Load: KERNELBASE.dll. No Debug Info. Base Address: $000007FEFD4B0000. Process Project1.exe (7444)
Module Load: OLEAUT32.dll. No Debug Info. Base Address: $000007FEFEFC0000. Process Project1.exe (7444)
Module Load: ole32.dll. No Debug Info. Base Address: $000007FEFD660000. Process Project1.exe (7444)
Module Load: msvcrt.dll. No Debug Info. Base Address: $000007FEFE670000. Process Project1.exe (7444)
Module Load: GDI32.dll. No Debug Info. Base Address: $000007FEFD870000. Process Project1.exe (7444)
Module Load: USER32.dll. No Debug Info. Base Address: $0000000076920000. Process Project1.exe (7444)
Module Load: LPK.dll. No Debug Info. Base Address: $000007FEFEE10000. Process Project1.exe (7444)
Module Load: USP10.dll. No Debug Info. Base Address: $000007FEFEE90000. Process Project1.exe (7444)
Module Load: RPCRT4.dll. No Debug Info. Base Address: $000007FEFE9B0000. Process Project1.exe (7444)
Module Load: ADVAPI32.dll. No Debug Info. Base Address: $000007FEFEC90000. Process Project1.exe (7444)
Module Load: SECHOST.dll. No Debug Info. Base Address: $000007FEFEAE0000. Process Project1.exe (7444)
Module Load: VERSION.dll. No Debug Info. Base Address: $000007FEFC300000. Process Project1.exe (7444)
Module Load: COMCTL32.dll. No Debug Info. Base Address: $000007FEFA2B0000. Process Project1.exe (7444)
Module Load: SHELL32.dll. No Debug Info. Base Address: $000007FEFD8E0000. Process Project1.exe (7444)
Module Load: SHLWAPI.dll. No Debug Info. Base Address: $000007FEFEB00000. Process Project1.exe (7444)
Module Load: COMDLG32.dll. No Debug Info. Base Address: $000007FEFD5C0000. Process Project1.exe (7444)
Module Load: WINSPOOL.DRV. No Debug Info. Base Address: $000007FEF96A0000. Process Project1.exe (7444)
Module Load: BASS.dll. No Debug Info. Base Address: $0000000180000000. Process Project1.exe (7444)
Module Load: WINMM.dll. No Debug Info. Base Address: $000007FEFAED0000. Process Project1.exe (7444)
Module Load: MSACM32.dll. No Debug Info. Base Address: $000007FEFAD00000. Process Project1.exe (7444)

BASS for Win64 (x64)

我怎样才能让它发挥作用?有没有人遇到过同样的问题?

1 个答案:

答案 0 :(得分:6)

错误代码0xc000007b是STATUS_INVALID_IMAGE_FORMAT。最常见的原因是加载器尝试将32位DLL加载到64位进程中。在配置文件模式下使用Dependency Walker来找出哪个DLL出错。