Я следующее перечисление, определенные в C++ API:Python: получение переменной перечисления из C++ с использованием ctypes
typedef enum RESULT_ENUM
{
SUCCESS,
ERR_INVALID_PORT_DEFINITION,
ERR_TOO_MANY_SAMPLES,
ERR_RECORDING_THREAD_ALREADY_RUNNING,
ERR_RECORDING_WITHOUT_APPLY_SETTINGS,
...
}RESULT;
У меня есть программа в C++, который использует API и создание:
RESULT res;
Затем он использует функцию из API, чтобы установить значение внутри res
, например:
res = SetProfile(APP_PROFILE);
res = SetDynamicImageFilter(filterType);
res = StartCalibration();
Я хочу с повторите программу Python, которая делает то же самое (буквально), используя ctypes. Как перевести RESULT res;
на питоновский путь? Как я могу сделать это с желаемыми результатами от функций?
EDIT:
Эти функции возвращают значения, которые соответствуют RESULT
счетчиками. Я хочу получить эти перечисления в Python, как я могу это сделать? В настоящее время я получаю числа, соответствующие значениям счетчиков.
Воспроизведение 'enum' в Python немного неуклюже, так как оно не очень хорошо вписывается в дизайн языка. См. [Этот пост] (http://stackoverflow.com/questions/1546355/using-enums-in-ctypes-structure) для примеров. – Tim
В C++ 'res' меняет внутренне API и доступен программой C++. Есть ли способ имитировать это поведение в Python? Как создать переменную 'ctypes', которая изменится в соответствии с C++ API? – galah92