half-life
@half-life

Ошибка при работе с dll (NameError: name 'WinDLL' is not defined) как это побороть?

Доброго времени суток. Есть библиотека dll и обёртка для неё написаная на питоне. Суть в том, что при запуске скриптов использующих эту обёртку появляется ошибка. Скрипты запускаются на машине с ElementaryOS Luna, Python 3.5.0.
/home/user/Envs/test/bin/python3.5 /home/user/PycharmProjects/StealthScripts/py_stealth.py
Traceback (most recent call last):
  File "/home/user/PycharmProjects/StealthScripts/py_stealth.py", line 35, in <module>
    stealth_dll = WinDLL('/home/user/Stealth/Script.dll')
NameError: name 'WinDLL' is not defined

Process finished with exit code 1

Пока добился запуска таким способом. В wine установил python 3.4.2 и запускаю скрипт через него. Получается так:
/home/user/.wine/drive_c/Python34/python.exe /home/user/PycharmProjects/StealthScripts/py_stealth.py
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:msvcrt:__clean_type_info_names_internal (0x1d1b51cc) stub
fixme:msvcrt:__clean_type_info_names_internal (0x1e290f6c) stub

Process finished with exit code 0


Можно ли как то обойтись без питона из вайна? Если использую его, то пошаговая отладка почему то не работает.
  • Вопрос задан
  • 776 просмотров
Решения вопроса 1
@nirvimel
Дело в том, что ctypes, которая занимается подгрузкой динамических библиотек, не полностью кроссплатформенная. Как говорит документация, функция WinDLL существует только в ctypes под Windows. Из Python под Linux вы не сможете загрузить динамическую библиотеку, скомпилированную под Windows.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Che_Bu_Rashka
Эта дллка работает с каким-то железом?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы