我正在開發一個.NET C++應用程序上運行32位應用程序。我使用的指紋傳感器的主庫只能在32位上工作,並且有很多依賴關係,其中之一就是msvcr110.dll。我知道這個DLL帶有VS C++ Redistributable Package 2012,所以我安裝了它。BadImageFormatException在64位PC
然而,當我跑我得到BadImageFormat例外的應用程序。我用Dependency Walker打開DLL,我發現它在Windows/System32的文件夾中找到msvcr110.dll/msvcr110d.dll,但在Dependency Walker中,DLL以64位格式顯示。這對我來說沒有意義,因爲它是從System32文件夾加載的。
如果我打開msvcr110.dll與Dependency Walker中,它顯示爲32位。爲什麼當指紋傳感器加載庫時,它將它加載爲64位?
任何想法解決這一問題?非常感謝
難道你不爲32位重定向的受害者? 閱讀關於'Wow64DisableWow64FsRedirection'。如果您可以發現並控制加載完成的確切位置,則可以禁用重定向,然後在加載完成後,您可以恢復。 – sergiol