晚上好,专家们。
我正在摆弄某些东西,现在我被卡住了。
我想修改应用程序的行为(Windows 7,64位)。 因此,我将一个DLL注入到正在运行的进程中以生成一个新线程,然后动态地找出我打算调用的某个函数的地址。
为了调用它,我出于舒适的原因得到了函数指针typedef。它看起来像这样:
typedef ReturnType (*certain_function)(void* this);
ReturnType 是一个我不知道的课程。 我需要将 ReturnType 类型的返回值传递给另一个函数。
typedef void (*another_function) (ReturnType);
ReturnType既不是原始类型也不是指针,它是我没有定义的类。
我不需要和班级一起工作,所以我真的不需要知道它的样子。
我的问题是: 显然,我必须自己定义 ReturnType ,例如:
class ReturnType {
public:
uint8_t padding[?];
};
但它有多精确?我是否可以为?使用一个非常大的值,它肯定会为类对象提供足够的内存,或者大小必须准确吗?如何在ASM级别上完成按值返回/按值调用?堆栈上的完整对象?