当前位置:首页 > 代码 > 正文

delphi代码结构(delphi编程)

admin 发布:2022-12-19 22:01 143


今天给各位分享delphi代码结构的知识,其中也会对delphi编程进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

delphi 内存结构

当程序运行时,系统首先将所有数据装载入内存,完成初始化,然后从入口地址开始执行代码。

程序装载后即存在于内存空间中的数据我们称之为静态内存,运行过程中分配的内存我们称之为动态内存。

Delphi的类是由编译期间决定的,编译完成后即固定在程序中,所以类是存在于静态内存中(类信息应该是位于数据段,类的方法实现应该是位于代码段)。对象是由运行期间创建的,所以对象属于动态内存。

对象

DELPHI中的对象是一个指针,这个指针指向该对象在内存中所占据的一块空间。我们可以试着用sizeof函数获取对象的大小,结果是4字节,这正是一个32位指针的大小。而对象的真正大小应该用MyObject.InstanceSize获得。

对象空间

我们将对象指针指向的内存空间称为对象空间。对象空间的头4个字节是指向该对象直属类的虚方法地址表(VMT – Vritual Method Table)。接下来的空间就是存储对象本身成员数据的空间,并按从该对象最原始祖先类的数据成员到该对象具体类的数据成员的总顺序,和每一级类中定义数据成员的排列顺序存储。

当一个对象产生时,系统会为该对象分配一块内存空间,然后将空间的头4个字节存储为指向类的VMT的指针,从而将该对象与对象的直属类联系起来。即使类并未定义任何虚方法,对象仍然会保存指向虚方法地址表的指针,只是VMT地址项的长度为零。

delphi程序结构是怎样的

dpr

为工程文件

dfm

为窗体文件

pas

为单元文件

cfg

配置文件

dof

为项目选项文件(一般没用)

dcu

compiled

units文件

,编译后的单元文件

res

资源文件

ddp

文件就是Delphi

Diagram

Portfolio简写,是用来保存Code

Editor中的Diagram信息的.

一般一个项目要考个别人,只需要

dpr,dfm,pas文件即可,如果有cfg,res也一块考(后两个文件很少用到)

Delphi单元文件

1.库单元文件头:其中声明了库单元的名字.

2.Interface部分:

由保留字interface开始,结束于保留字implementation,它用来声明引用的单元,常量,数据类型,变量,过程和函数.在Interface部分声明的变量,常量,数据类型,过程,函数都可以供外部引用,对整个程序而言是共有的.也就是说,对于所有引用该单元的单元来说,这些声明都是可见和可访问的.

在Interface部分,只需写出过程和函数的首部,具体的定义是在下面的implementation部分给出的.

Interface部分又可分为多个可选部分,分别为单元引入部分(uses),常量说明部分,类型说明部分,变量说明部分,过程和函数声明部分.

3.Implementation部分:

Implementation部分分为两部分.一部分是声明部分,包括单元引用,常量,类型,变量,过程和函数的声明,这一点和Interface部分相似.

区别有两点:

(1):在Implementation部分声明的只对本单元是公共的,可见的,其他单元即使引用了该单元,也不能访问它们.

(2):在Implementation部分声明的过程和函数,不需要遵循先声明后定义的规则,而可以直接写出过程和函数的定义.另一部分是在Interface部分声明的过程和函数的定义.

4.Initialization部分:

用于初始化该库单元,此处的代码最先执行.如果多个库单元中包含Initialization部分,那么它们的执行顺序就和Program的uses部分引用单元的出现顺序是一致的.

5.Finalization部分:

通常用于释放Initialization部分分配的资源.如果多个库单元中包含Finalization部分,其执行顺序和Initialization部分正好相反.

C#调用delphi记录结构体问题

这个是由于你定义C#不正确造成的。

C#里(C也一样),字符串的最后都有\0结束符。你定义的C#语句public string A;的长度是6,那么它的实际允许存储的字符串为5,因为最后一个得保留存储\0.

你在赋值时,字符串"abcdef"的实际存储结构是“abcdef\0”它实际需要占用7个字节。而系统为了保证长度不越界,只能将数据截断成“abcde\0”,这也就是你在Delphi中看到的是('a', 'b', 'c', 'd', 'e', #0),的原因(C中的\0实际的ASCII值就是0,所以Delphi中最后一个字符是#0)

关于delphi代码结构和delphi编程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/26487.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载