【问题标题】:Wine Calling Linux code from DLLWine 从 DLL 调用 Linux 代码
【发布时间】:2016-02-24 12:02:47
【问题描述】:

我有一个实用程序(没有可用的源代码),它使用 NTCAN.dll(dll 附带用于 ESD PCI CAN 卡的驱动程序)通过 CAN 进行通信。我想在具有非常相似库的 Linux 中使用它。我可以重新编译 NTCAN.dll,因为我知道所有导出的函数名称和签名。问题是如何使用 WINE 从 DLL 中使用 linux 本机代码?

【问题讨论】:

  • 提供的细节,以及缺乏它,我们几乎不能说是非常具体的。

标签: linux windows dll wine


【解决方案1】:

这是一个问题,因为 DLL 可能对其公司驱动程序进行了一些 DeviceIoControl 调用。因此,您也必须反转驱动程序。您是否尝试过询问该卡的制造商,他们应该有兴趣将其出售给使用 Linux 的客户。

见:

【讨论】:

  • 你完全正确。事实上,ESD 提供了 linux 驱动程序和库(具有相同功能签名的.so),但是当我没有原始可执行文件的源代码时,我如何使用这个 .so 而不是 .dll?
  • 我有可能重写 dll(因为我知道导出和它的签名),但我不知道如何从这个重写的 dll 调用 Linux 本机代码。
  • 好的,您可以将 DLL 重写为围绕其本机 Linux .so 的包装器,该包装器调用其本机驱动程序。 DLL 不会直接调用驱动程序。
  • 我想。但是怎么做?你能给我举个例子吗?
  • 啊。我的错。我没有想过这个。你能问一个具体的问题吗,比如:如何在 Wine 下从 Windows 风格的代码中调用 .so 库?否则,您将不得不制作某种客户端-服务器对,这看起来有点矫枉过正。
猜你喜欢
  • 2011-05-02
  • 1970-01-01
  • 1970-01-01
  • 2011-04-07
  • 2013-01-04
  • 2012-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多