unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
end; TMyClass = class
Public
FMember1 : Integer;
FMember2 : Integer;
FMember3 : WORD;
FMember4 : Integer;
Procedure Method();
End;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
Obj : TMyClass;
begin
Obj := TMyClass.Create(); with memo1.Lines do
begin
Add('对象大小:' + IntToStr(Obj.InstanceSize));
Add('对象所在地址 :' + IntToStr(Integer(Obj)));
Add('FMember1所在地址:' + IntToStr(Integer(@Obj.FMember1)));
Add('FMember2所在地址:' + IntToStr(Integer(@Obj.FMember2)));
Add('FMember3所在地址:' + IntToStr(Integer(@Obj.FMember3)));
Add('FMember4所在地址:' + IntToStr(Integer(@Obj.FMember4)));
end; Obj.Free();
end;{ TMyClass }procedure TMyClass.Method;
begin
//no code
end;end.
上面这段代码是《delphi高手突破》光盘上的一个例子可是我在delphi7.0上不能运行
错误信息是 [Warning] Unit1.pas(42): Unsafe typecast of 'TMyClass' to 'Integer'
[Warning] Unit1.pas(43): Unsafe code '@ operator'
[Warning] Unit1.pas(44): Unsafe code '@ operator'
[Warning] Unit1.pas(45): Unsafe code '@ operator'
[Warning] Unit1.pas(46): Unsafe code '@ operator'
请问,这是为什么?????能不能解决??怎么解决??
谢谢,我刚开始学这个,不大懂,请各位大哥大姐帮忙!!!!谢谢
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
end; TMyClass = class
Public
FMember1 : Integer;
FMember2 : Integer;
FMember3 : WORD;
FMember4 : Integer;
Procedure Method();
End;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
Obj : TMyClass;
begin
Obj := TMyClass.Create(); with memo1.Lines do
begin
Add('对象大小:' + IntToStr(Obj.InstanceSize));
Add('对象所在地址 :' + IntToStr(Integer(Obj)));
Add('FMember1所在地址:' + IntToStr(Integer(@Obj.FMember1)));
Add('FMember2所在地址:' + IntToStr(Integer(@Obj.FMember2)));
Add('FMember3所在地址:' + IntToStr(Integer(@Obj.FMember3)));
Add('FMember4所在地址:' + IntToStr(Integer(@Obj.FMember4)));
end; Obj.Free();
end;{ TMyClass }procedure TMyClass.Method;
begin
//no code
end;end.
上面这段代码是《delphi高手突破》光盘上的一个例子可是我在delphi7.0上不能运行
错误信息是 [Warning] Unit1.pas(42): Unsafe typecast of 'TMyClass' to 'Integer'
[Warning] Unit1.pas(43): Unsafe code '@ operator'
[Warning] Unit1.pas(44): Unsafe code '@ operator'
[Warning] Unit1.pas(45): Unsafe code '@ operator'
[Warning] Unit1.pas(46): Unsafe code '@ operator'
请问,这是为什么?????能不能解决??怎么解决??
谢谢,我刚开始学这个,不大懂,请各位大哥大姐帮忙!!!!谢谢
对象大小:20
对象所在地址 :10125044
FMember1所在地址:10125048
FMember2所在地址:10125052
FMember3所在地址:10125056
FMember4所在地址:10125060
我想是我在某个地方搞错了
那能不能帮我解释一下unsafe code在d7里是个什么概念??????