Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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++;使用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中获得这些枚举数,我如何才能做到这一点?我当前

然后它使用API中的函数设置
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符号。我该怎么做?