Documento oficial: https://docs.python.org/zh-cn/3/library/ctypes.html
ctypes define algunos tipos de datos básicos compatibles con C
Paso en el hoyo 1:
sheetDeteInterface.h
// define
char* detectSheet(const char* imagePath, bool flag, const double angle=0.0);
llamada de python (ejemplo de error)
from ctypes import *
from ctypes import cdll
solib = cdll.LoadLibrary(so_path)
solib.detectSheet(c_char_p(image_path.encode('utf-8')), c_bool(flag), angle=c_double(angle))
llamada de Python (ejemplo correcto)
from ctypes import *
from ctypes import cdll
solib = cdll.LoadLibrary(so_path)
solib.detectSheet(c_char_p(image_path.encode('utf-8')), c_bool(flag), c_double(angle))
Porque al llamar a la función, la palabra clave de la sintaxis de Python se usa para pasar parámetros, por lo que el valor correspondiente al ángulo no se pasa a la biblioteca dinámica, pero el programa no informa un error, así que lo busqué durante mucho tiempo.
Por lo tanto, no puede usar palabras clave de Python para pasar parámetros al llamar a funciones de biblioteca dinámica.