Estoy trabajando en una máquina virtual que me gustaría ser capaz de interactuar con C. En sentido contrario y la exposición de las funciones de la máquina virtual de código C es bastante fácil, lo que no puedo envolver mi cabeza alrededor está exponiendo C funciones a una máquina virtual.¿Cómo puedo exponer las funciones C a una máquina virtual personalizada?
Me gustaría ser capaz de registrar dinámicamente funciones C con la máquina virtual, así:
vm_register(printf);
Luego, en mi máquina virtual, empujar los argumentos de la pila, y:
call printf
El problema es que sin saber cuántos argumentos requiere la función, y de qué tipo, no estoy seguro de que se puedan utilizar los punteros de función.
¿Existe una función genérica tipo de puntero que se puede utilizar en esta situación? ¿Alguien puede dirigirme en la dirección correcta?
Personalizado V.M. Idea interesante. Al exponer funciones, te refieres a llamar a D.L.L./Objeto compartido/Función de biblioteca compartida o desde una biblioteca "* .h" – umlcat