Python —— ctypes, llamar biblioteca dinámica: registro de pozo

Documento oficial: https://docs.python.org/zh-cn/3/library/ctypes.html

ctypes define algunos tipos de datos básicos compatibles con C

Inserte la descripción de la imagen aquí

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.

Supongo que te gusta

Origin blog.csdn.net/m0_38007695/article/details/112655696
Recomendado
Clasificación