Sto lavorando a una soluzione che dovrebbe funzionare in C ++ - Builder e Delphi, è per questo che uso la sintassi Object Pascal, ma non mi è molto familiare. Provo ad accedere a un mapping di file con una dimensione che non è definita in fase di esecuzione con Free Pascal / Delphi. Ho provato
type
TFileMappingLayout = packed record
Size: DWORD;
Data: array [0..0] of byte;
end;
PFileMappingLayout = ^TFileMappingLayout;
ma non sono sicuro se questo è conforme al controllo di intervallo. Sembra impossibile per google, non ho trovato nulla di utile finora. Leggere le descrizioni sulla creazione di tipi strutturati non ha menzionato casi come questo. Ho anche dato uno sguardo al codice sorgente di Lazarus, ma ho rinunciato dopo 100 definizioni di record banali ...
Uso il campo Data
solo per la copia binaria, ad esempio scrivendo su di esso:
PFileMappingLayout(FData)^.size := cbData;
Move(myData, PFileMappingLayout(FData)^.Data, cbData);
Come si fa normalmente con Delphi / Free Pascal?
Come chiameresti questo tipo di definizione del record ( open record , partial record )?