我正在使用Windows API并必须在Delphi record
内重新创建a structure。我想我已经记下了,但是这个有点令人困惑,我需要确保我做对了。如何将RETRIEVAL_POINTERS_BUFFER结构转换为Delphi?
这里的原有C++结构:
typedef struct RETRIEVAL_POINTERS_BUFFER {
DWORD ExtentCount;
LARGE_INTEGER StartingVcn;
struct {
LARGE_INTEGER NextVcn;
LARGE_INTEGER Lcn;
} Extents[1];
} RETRIEVAL_POINTERS_BUFFER, *PRETRIEVAL_POINTERS_BUFFER;
注意,有此结构内的阵列结构。这是我迷路的地方。如果我没有记错的话,德尔福版本应该是这样的:
TExtent = record
NextVcn: Integer;
Lcn: Integer;
end;
TExtents = array of TExtent;
PRETRIEVAL_POINTERS_BUFFER = ^TRETRIEVAL_POINTERS_BUFFER;
TRETRIEVAL_POINTERS_BUFFER = record
ExtentCount: DWORD;
StartingVcn: Integer;
Extents: TExtents;
end;
当我在Windows API中使用这样的结构,它似乎工作。但是,由于结构内部有这个结构数组,所以我有点犹豫,我做了这个正确的。这看起来正确吗?
几乎所有的东西都已经翻译过了['JEDI'](http://www.koders.com/delphi/fid87C50F65617654141B73DFD6DAF36BC0B953BF75.aspx)。 – TLama
@TLama,只要“几乎”不是一个因素,我认为这可能是我的答案。 –
我的意思是几乎所有的Windows API。你需要什么[当然完成](http://www.koders.com/delphi/fid87C50F65617654141B73DFD6DAF36BC0B953BF75.aspx#L3913)。 – TLama