在64位PC上运行的32位应用程序的BadImageFormatException

时间:2017-04-19 19:11:52

标签: .net visual-c++ dll dependency-management badimageformatexception

我正在开发一个.NET C ++应用程序。我正在使用指纹传感器,其主库仅适用于32位,并且具有许多依赖关系,其中之一是msvcr110.dll。我知道这个DLL附带了VS C ++ Redistributable Package 2012,所以我安装了它。

然而,当我运行应用程序时,我得到了BadImageFormat异常。我用Dependency Walker打开了DLL,我看到它在Windows / System32的文件夹中找到msvcr110.dll / msvcr110d.dll,但在Dependency Walker中,DLL以64位格式出现。这对我来说毫无意义,因为它是从System32文件夹加载的。

如果我使用Dependency Walker打开msvcr110.dll,它将显示为32位。为什么当指纹传感器加载库时,它将其加载为64位?

有什么想法来解决这个问题?非常感谢

1 个答案:

答案 0 :(得分:-1)

感谢您的回复:)最后,我采取快速方式并安装Visual Studio 2012以获取msvcr110d.dll。然后,我将两个dll复制到我的程序路径,它工作了......但是,你的选项看起来更好,因为它不需要使用调试dll。