32位应用程序链接到System32二进制文件,而不是SysWOW64

32-bit application links with System32 binaries instead of SysWOW64

本文关键字:SysWOW64 二进制文件 应用程序 链接 System32 32位      更新时间:2023-10-16

我有一个32位dll,它链接来自System32而不是SysWOW64的二进制文件。这个dll是x86 Outlook add-inC++项目的一部分,它应该链接到系统文件夹中的一些二进制文件,但由于我在64位系统上,我希望它能在SysWOW64而不是System32中找到它们。

我尝试过在System32中复制这些二进制文件的32位版本,这很有效,但这显然不是解决方案,所有其他错误都会由此产生

在哪里可以更改Visual Studio用于x86系统文件夹的位置?

在WOW64下运行的32位应用程序看到的是虚拟环境,而不是真实的文件系统。

它只认为自己正在与System32链接。它所看到的System32实际上是SysWOW64。

以类似的方式,它拥有注册表和其他重要系统资源的虚拟化视图。

这是因为WOW64的目的是实现二进制兼容性。因此,应用程序看到的环境必须看起来像是在32位操作系统上运行。