Delphi2009初体验

一、提出问题

在将json-rpc中JSONObject翻译成Delphi代码的时候,我碰到以下语句:

1 Method[] methods = klass.getMethods(); 2 … 3 Method method = methods[i]; 4 … 5 if (key.length() > 0 && 6     Character.isUpperCase(key.charAt(0)) && 7     method.getParameterTypes().length == 0) { 8 … 9 }10

很明显,这里是通过反射得到类中包含的函数的信息及函数所包含的参数信息。当我在Delphi2009中兴奋的引入ObjAuto文件时,我沮丧的发现,ObjAuto中只提供了GetMethods方法,没有提供类似于Java中getParameterTypes方法的GetParams方法。没关系,Delphi的SDK不提供,我们就根据VMT表,自己写一个GetParams函数出来!

二、分析问题

我们知道,在Delphi中对象是在堆中存放的。而对象在堆中存放的前四个字节组成一个地址,这个地址指向的是此对象所对应的VMT所在堆中的地址。VMT可以理解为Delphi对象所对应的类在堆中存放的组成形式的描述,它是类的结构,不包含对象的数据。有关VMT的更多信息,请百度一下、Google一下,或查看以下两篇文章:

1、Delphi中类的运行期TypeInfo信息结构说明

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索delphi
, 对象
, 函数
, 方法
, json-rpc
, 地址
, 信息
, delphi问题
, 地址存放问题
vmt
delphi2009下载、delphi 2009、delphi 2009 破解、delphi2009 序列号、delphi2009 tpngimage,以便于您获取更多的相关知识。

时间: 2024-12-29 23:56:47

Delphi2009初体验的相关文章

XenApp / XenDesktop 7.6 初体验一 安装, 配置站点和序列号服务

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1579558 最新的Xen Desktop/Xenapp 已经到7.6的版本了.豆子自己搭建了个实验环境练练手. 虚拟平台我使用的是ESXi 5.5,OS都是windows 2012R2,之前我已经设置了Vcenter,DC和SQL 服务器.可以说准备工作基本上都好了.登录 Citrix.com,下载试用版的ISO镜

初体验JBossESB 及 部署使用 Hello World QuickStart

http://yulimin.javaeye.com/blog/52980 关键字:   ESB SOA     初体验JBossESB 及 部署使用 Hello World QuickStart1.下载 JBoss 4.0.5 GA 及 JBossESB 4.0 CR2 并解压,如果是src包的话,进入JBossESB目录运行ant install %JBoss_HOME% : C:/OpenSource/JBoss/4.0 %JBossESB_HOME% : C:/OpenSource/JB

zephir-(2)安装和初体验

zephir-安装和初体验 前言 先在这里感谢各位zephir开源技术提供者 zephir主要是解决了PHP开发人员尝试编写和编译PHP拓展所能执行的代码的语言.这是一个支持动态/静态类型的语言,熟悉PHP开发人员可以很好的进行开发.zephir这个名字的主要来源是(Zend Engine/PHP/Intermediate),今天首先介绍zephir的安装,接着会对zephir进行一些语法上面的介绍,希望大家喜欢! 注:笔者水平有限,说的不正确的地方希望大家多多指正,一同交流技术 附上: 喵了个

新手RoR十分钟初体验Step By Step

http://yulimin.javaeye.com/blog/35929 关键字: rails   Ruby Rails RoR     新手RoR十分钟初体验Step By Step 声明一下,这是个新手启动的体验文章,高手不要看了...:) 1.安装RubyWindows用户去 http://rubyforge.org/ 的 http://rubyforge.org/projects/rubyinstaller/ 下载 One-Click Installer - Windows 安装即可,

php+jquery+ajax初体验

这个一个简单的php与ajax案例 仅供新手学习 附上效果图 jquery ajax代码  $(function(){   $("#send").click(function(){    var cont = $("input").serialize();    $.ajax({     url:'aseoe.php',     type:'post',     dataType:'json',     data:cont,     success:function

Fireworks MX 之初体验1-2

在编者的苦口婆心,盛情邀请下,风云设计 的两位高手 风筝 和 心动为谁 终于答应,为广大朋友奉献对 Fireworks MX 的亲密接触后带来的初体验,为喜爱 Fireworks 的 fans 们作出贡献,特此鸣谢! Optimize of FW4 Optimize of FWMX 通过比较,我们发现FWMX中Optimize面板比起FW4中的内容要丰富多了,包括弹出菜单选项,其实通过观察,我们可以清楚的看到,现在的Optimize面板其实是将FW4中的Optimize面板和Color面板整合到

Fireworks MX 之初体验1-1

在编者的苦口婆心,盛情邀请下,风云设计 的两位高手 风筝 和 心动为谁 终于答应,为广大朋友奉献对 Fireworks MX 的亲密接触后带来的初体验,为喜爱 Fireworks 的 fans 们作出贡献,特此鸣谢! Fireworks MX 初体验 正如好多"专家"预料的那样,Fireworks Mx(Beta)[以后简称FWMX]终于在5月份左的时候出现了.估计刚刚拿到测试版的朋友们的心情肯定和我是一样的--激动得很.并且对她充满无限憧憬.我现在倒是真的很想知道各位在安装后,然后真

Fireworks MX 之初体验2-1

在编者的苦口婆心,盛情邀请下,风云设计 的两位高手 风筝 和 心动为谁 终于答应,为广大朋友奉献对 Fireworks MX 的亲密接触后带来的初体验,为喜爱 Fireworks 的 fans 们作出贡献,特此鸣谢! 优化菜单面面观 上节我们对FWMX的最新.最酷(好像我很能落伍一样,总用老掉牙的词汇~)的各种新面板做了一个简单的介绍和了解,不知道各位是不是已经拿到了FWMX的测试版本开始体验了,相信体验的感觉总的来说应该是美妙的.本节我们来一起看看FWMX的各级菜单及其相关命令.同样,我们仍然

Fireworks MX 之初体验2-2

在编者的苦口婆心,盛情邀请下,风云设计 的两位高手 风筝 和 心动为谁 终于答应,为广大朋友奉献对 Fireworks MX 的亲密接触后带来的初体验,为喜爱 Fireworks 的 fans 们作出贡献,特此鸣谢! 优化菜单面面观 四.Text(文本)菜单. 通过观察,发现最大的一个变化就是增加文本拼写检查功能:"Check Spelling"和"Spelling Setup",这个功能的增加使得其文本编辑能力似乎又有所增强了,不过感觉实际运用中的意思似乎不大.并