如何使用VSCode

时间:2018-08-21 18:34:09

标签: visual-studio go dll x86 64-bit

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

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

我认为,如果我使用GOARCH = 386进行调试,则可以加载DLL。但是每次我尝试使用GOARCH = 386执行时,VSCode都会收到错误消息,指出不支持该体系结构。

需要帮助。

2 个答案:

答案 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位进程。

-

  • 我熟悉C ++,而对GO一点都不了解。我不知道如何(或根本不可以)在GO中实现该技术。

答案 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安装。