首页 > 解决方案 > 如何在 64 位 vb.net windows 应用程序中引用 32 位 dll

问题描述

我们正在 vb.net 中开发一个 Windows 窗体应用程序,该解决方案中有 400 多个项目,并且构建在 64 位架构中。现在,我们有一个具有 32 位架构的 c++ 类型的外部 dll,我们可以在我们的应用程序中引用它,但是会抛出这样的错误

“试图加载格式不正确的程序。(来自 hresult 的异常:0x8007000в)”

无论如何,我可以在不将所有 400 个项目更改为 32 位架构的情况下运行应用程序并引用 dll 吗?

标签: c++vb.netexceptiondlldllimport

解决方案


您不能在 64 位进程中加载​​ 32 位 DLL。

您需要实现一个 32 位 EXE 进程来托管 DLL,并发明一种 IPC 机制来代理对其的调用。进程外的COM EXE 似乎是可能的选择。


推荐阅读