Есть класс: 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)();