我有一个 32 位 dll,它链接到来自 System32
而不是 SysWOW64
的(我的)二进制文件。这个 dll 是 x86 Outlook 加载项
的 C++
项目部分,它应该链接到系统文件夹中的一些二进制文件,但正如我我在 64 位系统 上,我希望它会尝试在 SysWOW64
而不是 System32
中找到它们。
我已经尝试在 System32
中复制这些二进制文件的 32 位版本,这很有效,但这显然不是解决方案,并且会引发各种其他错误。
我在哪里可以更改 Visual Studio
的 x86 系统文件夹位置?
最佳答案
在 WOW64 下运行的 32 位应用看到的是虚拟化环境,而不是真实的文件系统。
它只认为它正在与 System32 链接。它所看到的 System32 实际上是 SysWOW64。
以类似的方式,它具有注册表和其他重要系统资源的虚拟化 View 。
这是因为 WOW64 的目的是实现二进制兼容性。因此,应用程序看到的环境必须看起来像是在 32 位操作系统上运行。
关于c++ - 32 位应用程序链接 System32 二进制文件而不是 SysWOW64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37275323/