Есть класс: class Object { public: bool CheckVar( void ); ... } В памяти программы есть его экземпляр object, нужно из библиотеки подгруженной к ней через LD_PRELOAD вызвать object->CheckVar(). Вызываю так: Object* object = GetObjAddrFromMemy(); long CheckVar_addr = GetProgAddrFromMem() + CHECK_VAR_OFFSET; bool CheckVar_result = false; asm( "movl %1, (%%esp)\n"\ "call *%2\n"\ "movb %%al, %0\n"\ : "=m" (CheckVar_result)\ : "r" (object), "r" (CheckVar_addr) ); Хотел бы узнать, можно ли обойтись без асма? Например так нельзя (не даёт привести тип): bool (Object::*CheckVar)() = (bool (Object::*)())(CheckVar_addr); CheckVar_result = (object->*CheckVar)();
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от mv
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Привести функцию типа void(C::*method)(Args...) к void* (2018)
- Форум QComboBox - события вызова меню (2014)
- Форум Александреску, C☩☩, неявное преобразование типов. (2008)
- Форум C++ и замыкания (2005)
- Форум Вызов Python функций из C++. boost::python, Pyhton C-API. (2017)
- Форум Поле типа unique_ptr и деструктор (2019)
- Форум [c++] CL's with-open-file like macro in C++ (2008)
- Форум Оптимизатор GCC 4.4 (2009)
- Форум Named entity graph сразу для двух списков портит данные (2018)
- Форум Можно ли кастовать указатели на оbj-c-шные классы в void* и обратно? (2014)