Hola,
Tengo un problemilla, he de hacer una librería puente para llamar a una API
sobre la que no tengo control. A priori (en tiempo de diseño) no conozco el
número de argumentos ni el nombre de la función ni nada de nada...
únicamente algunos datos como que siempre devuelve un long y los tipos
estándar que acepta como entrada. En tiempo de ejecución me van a pasar un
string que tendré que parsear y con él obtendré el nombre de función y los
argumentos.
Visto lo visto, no puedo usar el típico GetProcAddress y hacer un cast con
el prototipo por lo que supongo que voy a tener que recurrir a assembler
dentro de una librería en C/C++ (uso Visual C++) para el paso y recogida por
la pila. Lo malo es que no lo he hecho nunca y, aunque se que se puede, no
se como... tampoco se si es posible verificar el número de argumentos para
que no me hagan ningun estropicio (me imagino que esto es imposible).
¿Alguien me puede hechar una mano o algun ejemplo?
Unos datos más: las funciones exportadas por la API son con el modelo
c_decl, siempre devuelven un long y por lo que me han comentado hasta ahora,
los argumentos de todas las funciones son punteros a tipos de datos
conocidos.
Saludos y muchas gracias,
Carlos
Leer las respuestas