Python:从c++;使用ctypes 我在C++ API中定义了以下枚举: 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中的函数设置Python:从c++;使用ctypes 我在C++ API中定义了以下枚举: 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;,python,c++,enums,ctypes,Python,C++,Enums,Ctypes,然后它使用API中的函数设置res中的值,例如: res = SetProfile(APP_PROFILE); res = SetDynamicImageFilter(filterType); res = StartCalibration(); 我想创建一个Python程序,使用ctypes实现同样的功能(字面意思)。 如何翻译结果res以Python的方式?如何使其包含 功能的预期结果 编辑: 这些函数返回与结果枚举数匹配的值。我想在Python中获得这些枚举数,我如何才能做到这一点?我当前
res
中的值,例如:
res = SetProfile(APP_PROFILE);
res = SetDynamicImageFilter(filterType);
res = StartCalibration();
我想创建一个Python程序,使用ctypes实现同样的功能(字面意思)。
如何翻译结果res代码>以Python的方式?如何使其包含
功能的预期结果
编辑:
这些函数返回与结果
枚举数匹配的值。我想在Python中获得这些枚举数,我如何才能做到这一点?我当前正在获取与枚举数值对应的数字。名称到值的映射未编译到二进制文件中
所有需要enum值的ctypes代码硬代码在python中都具有该值
如果将Python扩展中的C++代码包括起来,可以选择将枚举值暴露为模块的Python符号。
如果您控制C++实现,您可以添加一个辅助函数来返回所需枚举的值。
< P>值映射的名称不编译成二进制。< /P>
所有需要enum值的ctypes代码硬代码在python中都具有该值
如果将Python扩展中的C++代码包括起来,可以选择将枚举值暴露为模块的Python符号。
如果你控制C++的实现,你可以添加一个帮助函数来返回你需要的枚举值。< /P>在Python中重新创建一个<代码>枚举> /CUT>是有点笨拙的,因为它不适合语言的设计。例如,在C++中,<>代码> RES/COD>由API在内部进行更改,并且可以由C++程序访问。有没有办法在Python中模仿这种行为?像创建一个<代码> cType < /Cube将根据C++ API改变的变量?在Python中创建一个<代码> EnUM <代码>有点笨拙,因为它不适合语言的设计。例如,在C++中,<>代码> RES/COD>由API在内部进行更改,并且可以由C++程序访问。有没有办法在Python中模仿这种行为?就像创建一个<代码> cType < /Cube >根据C++ API会改变的变量?我不控制C++ API。所以我想我要寻找的是将枚举值公开为python符号。我怎么做?我不控制C++ API。所以我想我要寻找的是将枚举值公开为python符号。我该怎么做?