【发布时间】:2026-01-11 22:55:03
【问题描述】:
在这篇文章中,我将讨论使用 C++ 和 Win32 API 创建的原生 Windows 应用程序和 DLL。
从Can I load a 32 bit DLL into a 64 bit process on Windows? 的帖子中,我了解到 64 位进程不能直接使用 32 位 DLL。解决此问题的一种方法是将 DLL 托管在 32 位进程中并使用某种形式的 IPC。 既然如此,这背后的原因是什么? 为什么 64 位进程不能使用 32 位 DLL? 难道是x86和x64指令集的区别?
【问题讨论】:
-
问题好像不是重复的; “重复”问题中的任何答案都没有为这个问题提供答案:“重复”问题询问是否有可能(答案说“否”),而这个问题是关于原因的! @John:请再次提出您的问题;您的问题应该包含对另一个问题的引用(例如“问题的答案'我可以加载 32 位 DLL...' 说这是不可能的。这是什么原因?”)所以每个人都可以看到你的问题不完全一样。
-
@Ben Voigt 您建议的帖子没有回答我的问题。我的问题是为什么 64 位进程不能使用 32 位 dll?
-
好吧,我强调欺骗的评论似乎已经消失了。但是对于其他问题的答案也肯定会回答这个问题。具体来说,点击link to the Raymond Chen blog post阅读。
标签: windows winapi dll 32bit-64bit