【发布时间】: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