【发布时间】:2014-10-12 10:30:09
【问题描述】:
操作系统:Windows 8.1 64
我尝试使用 DirectX 在 VB.Net 中播放多个声音,我的代码中没有错误。 问题是每当触发事件时,我都会收到此错误
System.BadImageFormatException 未处理 消息:未处理 “System.BadImageFormatException”类型的异常发生在 System.Windows.Forms.dll 附加信息:无法加载文件 或程序集“Microsoft.DirectX.AudioVideoPlayback.dll”或其之一 依赖关系。不是有效的Win32应用程序。 (例外来自 HRESULT: 0x800700C1)
然后我将 Target CPU 设置为 x86,我得到了这个错误
System.IO.FileLoadException 未处理 消息:未处理 “System.IO.FileLoadException”类型的异常发生在 System.Windows.Forms.dll 附加信息:混合模式程序集 是针对运行时的“v1.1.4322”版本构建的,不能 在 4.0 运行时加载,无需额外配置 信息。
到目前为止,我已经尝试卸载-重新安装 DirectX SDK,安装与 DirectX 和不同声音文件 (.wav) 有关的所有内容。
此外,我必须浏览加载 .dll,在 Reference Manager>Assemblies 下找不到它们,但现在我什至无法通过浏览加载它们,所以我使用 Imports Microsoft.DirectX.AudioVideoPlayback
它会让我导入其余的 .dll,除了(参考管理器甚至不会打开它们):
Microsoft.DirectX.AudioVideoPlayback.dll
Microsoft.DirectX.dll
Microsoft.DirectX.DirectSound.dll
我需要的那些。有没有办法清理重新安装它们?
目标框架:.Net Framework 4.5
代码:
Dim MySound1 As New Microsoft.DirectX.AudioVideoPlayback.Audio("D:\path\sound_file.mp3")
MySound1.Play()
如果您还需要了解其他信息,请告诉我。
更新:
我将Target Framework 更改为.Net Framework 3.5,它工作正常,但前提是CPU Target 设置为x86!这是为什么呢?
【问题讨论】:
-
对我来说图像不好,可能是声音文件。您是否尝试使用其他声音文件。或者我尝试使用 .wav
-
BadImageFormatException通常是 32 位/64 位问题。您引用的 DirectX 库是否与您的应用程序相同? -
尝试了一个 .wav 文件 - 没有工作。我将目标 CPU 设置为 x86,现在出现此错误:"System.IO.FileLoadException was unhandled Message: An unhandled exception of type 'System.IO.FileLoadException' occurred in System.Windows.Forms.dll附加信息:混合模式程序集是针对运行时版本“v1.1.4322”构建的,如果没有附加配置信息,则无法在 4.0 运行时中加载。”
-
我将
Target Framework更改为.Net Framework 3.5,它工作正常,但前提是CPU Target设置为x86!这是为什么呢? -
有关旧版托管 DirectX 1.1 程序集的状态和限制的详细信息,请参阅 this 帖子。
标签: .net vb.net dll directx audiovideoplayback