c++ - 32 位应用程序链接 System32 二进制文件而不是 SysWOW64

标签 c++ visual-studio-2012

我有一个 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/

相关文章:

.net - T4:在 Visual Studio 和 MSBuild 中使用属性

c++ - 如何将 WM_KEYDOWN 消息传递给 IWebBrowser2 实例?

c++ - 使用矩阵求幂的线性递归

c++ - LNK2019 : unresolved external symbol error in OPNET 14. 5A

visual-studio-2012 - MyDocuments/IIsexpress 文件夹被删除

visual-studio - F# 项目静默更新我的引用

c++ - 在代码中使用 Style 自定义 Qt slider 时, handle 偏离凹槽

c++ - 在堆中创建一个函数指针数组

c++ - 难以理解 C++ 程序、shift 和 &

asp.net-mvc - 我的 MVC 4 应用程序无法在 Azure 上加载。我如何找出问题所在?