|
|
1
2
PE File Format . 这是Win32上二进制文件的低级文件格式。即DLL、EXE、COM等。 有许多书描述了PE文件的布局和特点。还有许多工具可以让你探索它。
一个好的起点是 Resource File MSDN部分。还研究了“资源脚本(*.rc文件)”和“资源编译器(rc.exe)”。 |
|
|
2
1
如果这个引擎在Windows上运行,我想到的一个想法就是资源。有用于修改exe或dll资源内容的Windows API。此外,API允许从“外部”exe/dll读取资源。这样,额外的编译器将元数据作为资源存储在已编译的exe中。开发工具包将从“base”exe/dll读取metad数据。 现在,我以前对这种东西还不太熟悉,所以我可能离它的实际工作原理还有几光年的距离。 |
|
|
3
0
这看起来有点类似于Qt的moc(元对象编译器)。在QT的情况下,它生成额外的C++源文件,然后编译并与原始源文件链接在一起。 在您的示例中,一个可能的实现是生成的文件实现一组函数,可以调用这些函数来获取额外信息、设置属性等等。 |
|
|
4
0
只是在黑暗中捅了一刀,因为我从来没有看过SDK,但我猜想有两个系统通过一次,一次是用C++编译器,一次是用一个定制的元数据处理器,可以寻找元标签并处理相关的类名、实例成员名和()标签。可能创建了某种配置文件,或者放在一边,或者作为资源文件嵌入。自定义元数据传递也可以是C++代码生成器,它生成代码以实现每个类的伪反射。 |