我在 Windows 10 64 位上安装了一个 32 位应用程序,它在系统管理员文件夹,但在运行时,它会访问system32文件夹,而不是系统管理员文件夹。
应用程序未正常运行。
我尝试重新安装并检查兼容性,但没有效果。
答案1
正如@RohitGupta 提到的,在 SysWow64 中安装 32 位 DLL 是标准程序,但您的应用程序使用 System32 中的 DLL 是错误的。通常,当 Windows 发现它正在运行 32 位应用程序时,它会进行本地目录替换,但在这种情况下,它显然没有这样做。根据我的经验,发生这种情况的最常见原因是如果基础应用程序与 CPU 无关,例如在 .Net 环境中作为托管代码运行。由于应用程序没有位宽要求,因此它使用 64 位版本的框架运行以提高效率,因此将尝试与 64 位 DLL 链接。您需要联系应用程序制造商并确认它是否使用.Net 框架或某些类似的虚拟化方案,并获取设置为使用 32 位 DLL 的应用程序版本 - .Net 框架具有可以在应用程序头中设置的位标志,以限制它使用 32 位 DLL 和 COM 对象。
编辑:对于 .Net 框架,设置必要标志位的工具被调用corflags.exe
,并且应该可以与 Microsoft 的任何 Windows .Net 开发人员包一起使用。语法是corflags <executablename> /32bit+