怎样将c++中的类指针申明转换为delphi中的代码?200分,要不要?(200分)

  • 主题发起人 主题发起人 xxxxxxxx
  • 开始时间 开始时间
X

xxxxxxxx

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样将c++中的类指针申明转换为delphi中的代码,请转换下面的?
typedef struct
{
unsigned major;
unsigned minor;
unsigned build;
}
FT_VERSION,*FT_VERSION_PT

另外还请说明怎样将它事例化。谢谢!
 
type FT_VERSION_PT = ^FT_VERSION;
FT_VERSION = Record
major: DWORD;
minor: DWORD;
build: DWORD;
end;
 
事例化:
var aSample: FT_VERSION_PT
begin
GetMem(aSample, SizeOf(FT_VERSION));
aSample^.major := 3;
FreeMem(aSample);
end;
 
不用那么麻烦,
直接 new(aSample) 就行了。
不用的时候, dispose(p) (忘了,呵呵, 大概是这样)
 
Type
FT_VERSION_PT = ^FT_VERSION;
FT_VERSION = Record
major: DWORD;
minor: DWORD;
build: DWORD;
end;

var MyPoint: FT_VERSION_PT;
....
begin
New(MyPoint);
MyPoint^.major=...;
Dispose(MyPoint);
end;
 
同意Jetideas,我一直都是这么用的...
 
来晚了,100分...我伤心。
 
xxxxxxxx老兄:
你那个不是类指针,是指向struct的指针啊。
如果是指向struct的指针,那么以上几位的意见是正确的,
在Delphi中定义一个指向Record的指针即可。
但如果是指向class的指针,那么在Delphi中应该使类类型,
也称之为类引用(Class Reference)。

类引用的实例:

假设TMyClass是自己定义的一个类

type
TMyClassRef = Class of TMyClass

//这样就定义了一个可以引用TMyClass的类型

var
AClassRef:TMyClassRef
//定义TMyClassRef类型的变量,该变量可以指向TMyClass类型
AnObject:TMyClass;
begin
AClassRef := TMyClass

AnObject := AClassRef.create; //使用类引用来建立类的实例
AnObject.free;
end;

AClassRef不但可以引用TMyClass类,而且可以引用所有TMyClass类的子类。
 
多人接受答案了。
 
后退
顶部