Как вызвать Wine dll из python на Linux?

Я пишу скрипт python в Linux и должен вызвать некоторые функции Windows, доступные в Wine. В частности, AllocateAndInitializeSid и LookupAccountSidW, чтобы определить, кто вошел в систему на удаленном компьютере Windows. Эти функции являются частью advapi32.dll в Wine (редактировать: используя ответы, я смог вызвать функцию, но LookupAccountSidW работает только на локальном компьютере).

как я могу получить доступ к этим функциям или dll Wine в целом? Я пробовал

>>> cdll.LoadLibrary("~/.wine/drive_c/windows/system32/advapi32.dll")

но это приводит к ошибке:

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

есть еще ctypes функция, которая будет работать, или какой-то интерфейс вина, который я мог бы использовать?

2 ответов


не вино обеспечивает *.so версии DLL? Я, кажется,/usr/lib32/wine/advapi32.dll.so, например.

Если вы находитесь на 64-разрядной машине, имейте в виду, что вам понадобится 32-разрядная версия Python для загрузки 32-разрядных библиотек.


понял, что .Dll файлы - это формат, используемый в Windows.

на Linux, такие библиотеки заканчивается .Так

вы не можете использовать библиотеки, скомпилированные для одной платформы на другую. Это несовместимо.