gpt4 book ai didi

visual-studio - 如何使用 VSCode 在 GOARCH=386 的 64 位 GO 项目上使用 32 位 DLL

转载 作者:数据小太阳 更新时间:2023-10-29 03:10:56 30 4
gpt4 key购买 nike

我已经使用默认包安装了 VSCode 和 GO 扩展。我的项目需要加载一个 32 位 DLL。当我使用 F5 启动项目时,我在 syscall.LoadLibrary() 上收到错误 193。

我在互联网上发现,当有人试图在 64 位 arch 上加载 32 位 DLL 时,通常会发生错误。

我认为如果我使用 GOARCH=386 进行调试,我将能够加载 DLL。但每次我尝试使用 GOARCH=386 执行时,我都会在 VSCode 上收到错误消息,提示该架构不受支持。

需要帮助。

最佳答案

(我假设 64 位 DLL 是遥不可及的)

64 位进程无法将 32 位模块加载到其进程空间,32 位进程也无法将 64 位模块加载到其进程空间。在 32 位和 64 位模块之间进行通信的唯一方式是通过进程间通信 (IPC)。 Microsoft 建议您使用进程间 COM 将 32 位代码用于 64 位应用程序。 Here's an article explaining the process .太丑了。

如果您认为没问题,请将您的项目构建到 X86 平台(32 位)。这样 ehlapi32.dll 就可以兼容并解决问题。您的 32 位软件在 64 位平台上仍然受支持,因为 32 位进程可以在 64 位 Windows 操作系统上执行。

--

  • 我熟悉 C++,但完全不熟悉 GO。我不知道如何(或者如果有的话)在 GO 中实现该技术。

关于visual-studio - 如何使用 VSCode 在 GOARCH=386 的 64 位 GO 项目上使用 32 位 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51954745/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com