怎样用动态数组作为过程的参数(或通过过程定义修改动态数组)(100分)

  • 主题发起人 主题发起人 xinjia
  • 开始时间 开始时间
来晚了,让ddev抢先了,真扫兴。
不过也可以凑合几句:
1)[在 Delphi 中,所有的类都是引用。]
基本可以这样认为吧,我可以说一下原理,一个32位的地址是作为内容放在一个临时指针
中的,这个地址就是Tobject。相当于指向指针的指针,所以,传递这样的东西时可以不用
引用,实际上就如同传递了一个long integer过去,地址不重要,值重要,因为这个值就是
Tobject的地址。
2)参数传递机制和内存引用机制是Object Pascal的特色,和java最相似,其实你们也可以考虑
在本例中使用^^技术。
 
来晚了,让ddev抢先了,真扫兴。
不过也可以凑合几句:
1)[在 Delphi 中,所有的类都是引用。]
基本可以这样认为吧,我可以说一下原理,一个32位的地址是作为内容放在一个临时指针
中的,这个地址就是Tobject。相当于指向指针的指针,所以,传递这样的东西时可以不用
引用,实际上就如同传递了一个long integer过去,地址不重要,值重要,因为这个值就是
Tobject的地址。
2)参数传递机制和内存引用机制是Object Pascal的特色,和java最相似,其实你们也可以考虑
在本例中使用^^技术。
 
谢谢各位!前几天无法上网才迟迟没发分
 
to ddev:
ddev兄太谦虚了!这次的问题,我想主要是ddev兄把问题的重点放在了如何解决DLL
中动态数组的内存分配上,走了弯路,小弟与兄的误会亦因此而起。在进此贴之前,小弟
对于动态数组与开放数组也不大明白,只是碰巧注意到“Incompatible types”,走了捷径
而已。看看小弟上面的贴子,太多意气之辞,技术说得太少,再看看ddev兄的君子之风,
实是汗颜!
ddev兄的程序,虽说与小弟初衷不符,但正像xinjia兄所说,ddev兄的贴子应该说是
把开放数组讲透了,将Help完整译出再加上例子的实际示范,可以说是本贴的精华所在,比
起单纯一个例程有价值得多。

请到:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=607813
http://www.delphibbs.com/delphibbs/dispq.asp?lid=607814
拿分!

to 两位:
正所谓不打不相识,交个朋友如何?
me:

BTW:
本贴是昨天所写,但在今天凌晨2:00~4.00之间发过多次都未成功,提示PostXXXX.Asp错
还好晚上正常了!
 
后退
顶部