Pracuję na maszynie wirtualnej, którą chciałbym móc połączyć z C. Przejście w drugą stronę i eksponowanie funkcji maszyny wirtualnej na kod C jest dość łatwe, co nie jest w stanie objąć mojej głowy, naraża C funkcje do maszyny wirtualnej.Jak mogę wyświetlić funkcje C na niestandardowej maszynie wirtualnej?
Chciałbym móc dynamicznie zarejestrować funkcji C z maszyną wirtualną tak:
vm_register(printf);
Wtedy w mojej wirtualnej maszynie, wciśnij argumenty na stos, a także:
call printf
Problem polega na tym, że nie wiedząc, ile argumentów wymaga funkcja i jakiego typu, nie jestem pewien, czy można użyć wskaźników funkcji.
Czy istnieje typowy typ wskaźnika, którego można użyć w tej sytuacji? Czy ktoś może mnie skierować we właściwym kierunku?
Własne V.M. Ciekawy pomysł. Przez eksponowanie funkcji masz na myśli wywołanie D.L.L./Shared Object/Shared Library lub z biblioteki "* .h"? – umlcat