我正在使用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