64 位 PC 上的 32 位应用 运行 出现 BadImageFormatException
BadImageFormatException on 32bit app running on 64bit PC
我正在开发 .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 位?
有什么解决办法吗?非常感谢
感谢您的回复:) 最后,我采取了快速的方式,安装了 Visual Studio 2012 以获得 msvcr110d.dll。然后,我将这两个 dll 复制到我的程序路径,它起作用了......但是,是的,你的选择似乎更好,因为它不需要使用调试 dll。
我正在开发 .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 位?
有什么解决办法吗?非常感谢
感谢您的回复:) 最后,我采取了快速的方式,安装了 Visual Studio 2012 以获得 msvcr110d.dll。然后,我将这两个 dll 复制到我的程序路径,它起作用了......但是,是的,你的选择似乎更好,因为它不需要使用调试 dll。