如何在Linux上从python调用Wine dll?

Rei*_*ica 8 python linux dll wine

我正在Linux中编写一个python脚本,需要调用Wine中的一些Windows函数.具体而言,AllocateAndInitializeSidLookupAccountSidW确定谁登录到远程Windows计算机.这些函数是Wineadvapi32.dll的一部分(编辑:使用答案,我能够调用该函数,但LookupAccountSidW仅适用于本地计算机).

我如何访问这些功能,或一般的Wine dll?我试过了

>>> cdll.LoadLibrary("~/.wine/drive_c/windows/system32/advapi32.dll")
Run Code Online (Sandbox Code Playgroud)

但它会导致错误:

OSError: ~/.wine/drive_c/windows/system32/advapi32.dll: invalid ELF header

是否有其他ctypes功能可以使用,或者我可以使用一些葡萄酒界面?

adw*_*adw 6

Wine不提供*.sodll的版本吗?/usr/lib32/wine/advapi32.dll.so例如,我似乎有.

如果您使用的是64位计算机,请记住,您需要32位版本的Python才能加载32位库.

  • 对于好奇的人,我实际上只是调用了在wine中运行python并使用windll.LoadLibrary,因为显然.so文件使用了stdcall调用约定,这在ctypes(cdll)的linux版本中没有公开. (3认同)