Импорт #определяет, констант и типов из библиотеки DLL с использованием под


У меня есть DLL от платы, которую я купил, чтобы сделать некоторые вещи, и она определяет некоторые функции, константы и типы. Я успешно импортировал его в Python, используя ctypes. Однако из этого импорта у меня нет доступа к определенным константам. Например, если мне нужно вызвать функцию:

myDLL = ctypes.cdll.LoadLibrary("path/to/dll/parrot.dll")

spam = myDll.eggs(THIS_CONSTANT) #THIS_CONSTANT is defined in the DLL

Тогда я не могу этого сделать. Есть ли способ получить доступ к этим константам?

2 2

2 ответа:

#define Конечно, не доступны из библиотеки DLL. Действительно, их определение расширяется препроцессором еще до того, как компилятор начинает работать. Таким образом, DLL никак не может запомнить имя, под которым она была определена.

Вам нужно перевести заголовочный файл в эквивалентный код Python ctypes. Это можно сделать вручную или, возможно, с помощью инструмента для автоматизации некоторых или всех преобразований.