我已经使用默认软件包安装了VSCode和GO扩展。 我的项目需要加载32位DLL。当我使用 F5 启动项目时,在syscall.LoadLibrary()上收到错误193。
我在互联网上发现,当有人尝试在64位Arch上加载32位DLL时,通常会发生错误。
我认为,如果我使用GOARCH = 386进行调试,则可以加载DLL。但是每次我尝试使用GOARCH = 386执行时,VSCode都会收到错误消息,指出不支持该体系结构。
需要帮助。
答案 0 :(得分:1)
(我认为无法访问64位DLL)
64位进程无法将32位模块加载到其处理空间中,而32位进程也无法将64位模块加载到其处理空间中。在32位和64位模块之间进行通信的唯一方法是通过进程间通信(IPC)。 Microsoft建议您使用进程间COM与64位应用程序一起使用32位代码。 Here's an article explaining the process。丑陋的。
如果您认为还可以,请在X86平台(32位)上构建项目。这样ehlapi32.dll
就可以兼容并解决了问题。您可以在64位平台上支持您的32位软件,因为可以在64位Windows操作系统上执行32位进程。
-
答案 1 :(得分:0)
问题是因为您试图在64位体系结构上加载32位dll。使用64位dll文件。连同使用gobit的64位dll进行安装。
只要您尝试在64位操作系统上从32位dll安装delve。 github的问题中也提到了这一点:
https://github.com/derekparker/delve/issues/20
如果您想在64位操作系统上运行32位dll,则VS Code会抱怨。 如果您有用于golang的32位dll,请卸载该文件,然后再次从64位dll安装。