Re: Можно ли вызвать функцию, запихав аргументы в стек рукам
От: AstroMan  
Дата: 24.12.08 21:37
Оценка:
Здравствуйте, Misha87, Вы писали:

M>Я опять о своем. Пусть у меня есть void* ааа. Я знаю что это указатель на функцию. В тантайме я узнаю все про агрументы и возвращемое значение. Можно ли как-то запихать в стек ручккми все нужные агрументы, вызвать функцию без аргуметров, и потом снять руками со стека результат? То есть хочется вот такого хака:


M>
M>void   CallMyFucntion(void* functPtr, char* arguments="int, float")
M>{
M>   push_to_stek(intVal);
M>   push_to_stek(floatVal);
M>   void (*func)();
M>   func = functPtr;
M>   func();

M>   result = pop_stek();
M>}
M>


M>Как такое реализовать? в ассемблер надо лезть?

В такой постановке задачи — надо лезть.
Вот я тут недавно лепил подобное:
http://www.rsdn.ru/forum/message/3194324.1.aspx
Автор: AstroMan
Дата: 30.11.08


Я почему бы просто не передавать в функции массив каких-нибудь вариантов?
Реализацию функций у тебя пишут специально для регистрации в машине?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.