变量问题 (100分)

  • 主题发起人 nullbert
  • 开始时间
N

nullbert

Unregistered / Unconfirmed
GUEST, unregistred user!
我的代码是这样的
type
Tprintdlg = class(TForm)
private
colnum:array of integer;
public
end;
var
printdlg:tprintdlg;

procedure myprint;export;

implementation

{$R *.dfm}

procedure myprint;
var
colnum:integer

begin
colnum:=colnum+1;
编译不能通过,程序做修改
type
Tprintdlg = class(TForm)
private
public
end;
var
colnum:array of integer
printdlg:tprintdlg;

procedure myprint;export;

implementation

{$R *.dfm}

procedure myprint;
var
colnum:integer

begin
colnum:=colnum+1;
为什么,编译时变量表不是由内到外的吗?
 
type pravite 部分的地址空间和type end;var部分的地址空间有什么区别
如果编译成一个动态连接库文件,然后调用,那么,这两部分的地址空间又有什么区别
如果,如上面的程序,我的printdlg是动态创建的,那么,当我在调用这个动态连接库文件
并且printdlg:=tprintdlg.create(application)时,这个printdlg创建在应用程序的
地址空间里还是在动态连接库文件的地址空间里,如果这个printdlg要调用变量
它是在应用程序的地址空间里找还是在动态连接库文件的地址空间里找 ?
向所有回答我的问题的人和所有的即将回答我问题的人致谢!
 
为了增加程序的可读性,
各嵌套程序中的变量还是取不同的名字为好,
毕竟我们如果对内存管理不是很熟的话可以减少一些出错的机率
 
编译通过了呀!

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
private
{ Private declarations }
colnum:array of integer;

public
{ Public declarations }
end;

var
Form1: TForm1;
procedure myprint;
implementation

{$R *.dfm}

procedure myprint;
var
colnum:integer;
begin
colnum:=colnum+1;
end;
end.
 
请给出编译错误提示吧
 
procedure myprint;export;
这是个导出函数!
 
如果我在动态连接库文件中动态生成许多图元文件
metafile:=tmetafile.create;
那么这些图元文件放在哪个地址空间里,
会不会因为图元文件的增多,而内存不够?
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
926
SUNSTONE的Delphi笔记
S
I
回复
0
查看
462
import
I
I
回复
0
查看
441
import
I
I
回复
0
查看
556
import
I
顶部