Python ctypes para retornar uma matriz de ponteiros de função
Estou trabalhando com uma DLL que contém uma única chamada que retorna uma matriz de ponteiros de função. GetMyApi () retorna um ponteiro para uma estrutura, que é uma matriz de ponteiros de função. As próprias funções têm diferentes entradas e saídas individuais. O que eu tentei até agora:
[Código C que não posso alterar facilmente] C:
typedef struct My_Api_V2
{
int (__cdecl *IsValidInt)(int i);
int (__cdecl *InvalidInt)();
int (__cdecl *IsValidSize)(size_t i);
} my_Api_V2;
const my_Api_V2* GetMyApi(int version); // This function is accessed from DLL
Esforço do Python:
from ctypes import *
my_dll = cdll.LoadLibrary(path_to_my_dll)
my_api = my_dll.GetMyApi
my_api.argtypes[c_int] #version number
my_api.restypes = c_void_p
firstfuncptr = my_api(2)
firstfunc = prototype(firstfuncptr)
firstfunc.argtypes[c_int]
firstfunc.restypes = c_int
test = firstfunc(23)
Neste ponto, estou apenas tentando fazer com que a primeira função da lista de funções retorne ao trabalho. Qualquer ajuda que me aponte para uma melhor direção é apreciada.