【发布时间】:2020-08-27 21:19:58
【问题描述】:
假设用户创建了自己的包含一些代码的结构:
struct NormalShader
{
vec3 normal;
vec3 color;
void main()
{
color = normal * 127.5f + 127.f;
}
};
然后主要的代码运行并尝试模拟这个结构:
void ShaderRun()
{
void* structData = alloca(structSize);
LoadAttributes(structData);
Invokemain(structData); //<- Pseudocode here that executes main() with the structs data at the 'structData' pointer
}
所以我的问题是:是否可以手动初始化一个未知结构,然后以某种方式破解其成员函数以使其处理自己的数据,而无需直接访问所述结构。
编辑:
澄清一下:通过hack,我的意思是强制NormalShader中的main函数认为它的结构元素是structData并在这些元素上执行它的代码。
【问题讨论】:
-
你能澄清你的最后一段吗? “hack”是什么意思?您共享的代码的哪一部分有问题?
-
你想在这里达到什么目的?
-
我试图在运行时从结构“NormalShader”反射调用“main”函数。
-
C++ 中没有反射。
标签: c++ struct function-pointers