Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在Linux下包装windows dll以在Python中使用它吗?_Python_Linux_Dll - Fatal编程技术网

我可以在Linux下包装windows dll以在Python中使用它吗?

我可以在Linux下包装windows dll以在Python中使用它吗?,python,linux,dll,Python,Linux,Dll,是否可以在Linux下从Python包装Windows DLL(特定硬件的驱动程序)以使用它 如果是,最佳方法是什么?免责声明:根据上下文,以下方法肯定不是最佳方法。这只是一种符合描述的可能方法 我编写了一个小型Python模块,用于在Linux上从Python调用Windows DLL。它基于IPC,介于常规Linux/Unix Python进程和基于Wine的Python进程之间。因为我自己在太多不同的用例/场景中都需要它,所以我将它设计为“通用”的插入式替换,它在后台自动完成大部分所需的管

是否可以在Linux下从Python包装Windows DLL(特定硬件的驱动程序)以使用它

如果是,最佳方法是什么?

免责声明:根据上下文,以下方法肯定不是最佳方法。这只是一种符合描述的可能方法

我编写了一个小型Python模块,用于在Linux上从Python调用Windows DLL。它基于IPC,介于常规Linux/Unix Python进程和基于Wine的Python进程之间。因为我自己在太多不同的用例/场景中都需要它,所以我将它设计为“通用”的插入式替换,它在后台自动完成大部分所需的管道

示例:假设您在Linux上使用Python,安装了Wine,并且希望调用
msvcrt.dll
(Microsoft C运行时库)。您可以执行以下操作:

import zugbruecke as ctypes
dll_pow = ctypes.cdll.msvcrt.pow
dll_pow.argtypes = (ctypes.c_double, ctypes.c_double)
dll_pow.restype = ctypes.c_double
print('You should expect "1024.0" to show up here: "%.1f".' % dll_pow(2.0, 10.0))
,&

它的边缘仍然有点粗糙(即alpha和不安全),但它可以处理大多数类型的参数(包括指针)


我真的很想看看它与硬件驱动程序一起使用时的行为和性能。欢迎反馈

移植(包装)驱动程序(至少是内核模式驱动程序)不应该在Linux内部工作。您必须在一个内存中运行两个并行系统,共享相同的全局特殊意义寄存器。我假设您没有访问此驱动程序的源代码的权限?简短的回答是:很可能没有。这样做,但对于网络设备驱动程序的非常特殊的情况。您确定Linux不支持该设备吗?这是一个USB设备吗?五年后,我完全忘记了这个问题,并在我的列表中标记为“可撤销”。谢谢你给了它新的生命;)祝你的图书馆好运,看起来很有希望!