【问题标题】:How to link a 32bit dll statically(!) into a 64bit C/C++ windows application?如何将 32 位 dll 静态(!)链接到 64 位 C/C++ Windows 应用程序?
【发布时间】:2012-03-03 00:52:55
【问题描述】:

几年前,我是一名 Windows 应用程序开发人员。 在过去的几年里,我正在处理内核和系统软件。 现在: 我有一个客户告诉我他有一个 64 位 C/C++ 应用程序 具体功能。此功能是加密狗请求 并且来自外部 32 位 dll。 他说虽然我看不到这个功能 内存中的DLL。 如果我删除 DLL,64 位应用程序仍然会加载。

这意味着 32 位 DLL 在某种程度上是 64 位应用程序的静态部分。

现在真的是这样吗?

如果是这样,我如何使用 Visual Studio 实现这一目标?

最好的问候 布克哈特

【问题讨论】:

  • 我不相信您所描述的内容在直接意义上是可能的。我们的产品(运行 64 位时)使用 32 位可执行文件在需要时执行 32 位操作。它在需要时通过命名管道与 64 位客户端 DLL 进行通信。
  • 这是一个架构解决方案,但是:您会在内存中找到 32 位 dll。但我可以加载应用程序,因此它不是 32 位 dll 的静态链接(!),我无法在内存中找到它,因此它不会动态( LodLibrary..( ) )重新加载。

标签: dll 32bit-64bit windows-7-x64


【解决方案1】:

根据我在 StackOverflow.com 上的发现,无法动态或静态地从 64 位应用程序(反之亦然)加载 32 位 DLL。但是,有一些解决方法。

请参阅以下内容:

【讨论】:

    猜你喜欢
    • 2013-04-11
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    • 2020-05-29
    相关资源
    最近更新 更多