【问题标题】:BadImageFormatException on bass.dllBass.dll 上的 BadImageFormatException
【发布时间】:2016-07-06 14:41:20
【问题描述】:

一年前,我在一个 mp3 项目中使用了 bass.dll。那时我使用的是 Windows 7、32 位。 现在我在另一个项目中,我需要再次使用 bass.dll。这次我使用的是 Windows 8.1,64 位。

Bass_Start() 给了我这个例外以及所有其他功能

An unhandled exception of type 'System.BadImageFormatException' occurred in EZBlocker.exe

Additional information: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B).

我正在使用DllImport 在我的项目中导入这些函数和bass.dll。

[DllImport("bass.dll")]
public static extern bool BASS_Start();

try
            {
                BASS_Start();
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

除了这些 64 位窗口给我带来的数千个错误之外,我还缺少什么?这是我第一次使用 64 位,我真的很后悔...

【问题讨论】:

  • 它是什么样的应用程序?您可以在项目设置中将构建设置为 x86 并编译。如果是托管在 IIS 上的 Web 应用程序,您可以在 IIS 中的站点设置中将“启用 32 位应用程序”设置为 true。请参阅此处code217.blogspot.com/2013/08/…
  • 查看他们的网站,他们确实支持 64 位。但他们说要确保您使用的是正确的库。因此,也许值得检查您是否拥有最新的 .dll,以便与正确的 .NET 框架一起使用。

标签: c# dll import 32bit-64bit bass


【解决方案1】:

如果您仅在 x86 上构建项目,则需要使用相同版本的 bass dll。 您总是可以使用 Bass.Net dll。您可以将它包含在您的项目中,并从那里调用 bass.dll 中的所有函数。

【讨论】:

    猜你喜欢
    • 2011-08-20
    • 2016-10-08
    • 2010-09-15
    • 2012-10-20
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 2013-09-18
    相关资源
    最近更新 更多