【发布时间】:2010-10-29 19:02:55
【问题描述】:
有没有人遇到过用于 Delphi 的框架或库来简化 x86 代码的生成?我不是在寻找一个汇编程序,而是一个将代码生成过程抽象到低级位和字节之上的框架。理想情况下,我希望构建在现有库或框架之上,而不是根据具体情况对逻辑进行硬编码。
最初的用途是在运行时生成小的代码存根,类似于 Delphi 分派 SOAP 请求的方式。如果我找不到东西,我可能会自己动手,但我不想重新发明轮子。如果许可证允许在商业和开源项目中翻译和使用,我可能会对“C”中的某些内容感兴趣。
更新:
这里有更多上下文:我正在努力将接口和/或类的运行时实现作为持久性框架的一部分。有点像 Java 注释驱动的持久性 (JPA/EJB3),除了明显的 Delphi 风格。调用目标是一个模块化/可扩展的框架,它将实现一个通用的持久性模型。我需要以非常动态和流畅的方式调度和挂钩基于 RTTI 和注释/属性模型(类似于 InstantObjects 元数据)的方法调用。
谢谢, 大卫
【问题讨论】:
-
Delphi 不使用代码生成来分派 SOAP 请求。它通过使用 {$METHODINFO} 和 ObjAuto.pas 找到的 RTTI 信息完成。如果您对它的工作原理感兴趣,我有示例应用程序。
-
技术上你是对的,但调用逻辑实际上确实设置了基于 RTTI 调度调用所需的堆栈帧和参数。这需要在汇编程序中进行一些低级工作。我想将这个过程抽象化,并且能够为像 thunk 这样稍微复杂一点的东西生成短代码序列。
标签: delphi code-generation x86 intel assembly