如何在Linux上从Python调用Wine dll?
我在Linux上写一个Python脚本,需要调用一些在Wine中可用的Windows函数。具体来说,我需要用到AllocateAndInitializeSid
和LookupAccountSidW
这两个函数,目的是确定谁登录了远程Windows电脑。这些函数是Wine中的advapi32.dll
的一部分(补充说明:通过一些回答,我成功调用了这个函数,但LookupAccountSidW
只在本地电脑上有效)。
我该如何访问这些函数,或者一般的Wine dll呢?我尝试了
>>> cdll.LoadLibrary("~/.wine/drive_c/windows/system32/advapi32.dll")
但结果出现了一个错误:
OSError: ~/.wine/drive_c/windows/system32/advapi32.dll: invalid ELF header
有没有其他的ctypes
函数可以用,或者我可以使用的Wine接口?
2 个回答
0
要知道,.DLL 是Windows系统使用的文件格式。
而在Linux系统中,这种库文件的后缀是.SO。
你不能把为一个平台编译的库文件拿去另一个平台使用,它们之间不兼容。
7
Wine难道不提供*.so
格式的dll文件吗?比如我好像有/usr/lib32/wine/advapi32.dll.so
这个文件。
如果你使用的是64位的电脑,要记住,你需要一个32位的Python版本才能加载32位的库文件。