Что означает директива {$ C PRELOAD}? - PullRequest
7 голосов
/ 14 декабря 2011

Я нашел эту директиву объявленной в Controls.pas (а также в других единицах), и я буду рад узнать, что это значит.

{$C PRELOAD}

Насколько я знаю, $ C означает утвержденияконтроль, но что такое ключевое слово PRELOAD?Это что-то вроде «Утвердить меня во время предварительной загрузки»?

Я нашел это в Delphi 2009

Спасибо

Ответы [ 2 ]

7 голосов
/ 14 декабря 2011

{$C+} и {$C-} для утверждений. {$C PRELOAD} - это перенос из 16-битного программирования, когда он предварительно загружает сегмент кода устройства в память сразу во время выполнения, вместо того, чтобы ждать, пока сегмент будет доступен в первую очередь. Это стало ненужным в Delphi 2, когда появилось 32-битное программирование, поэтому я не знаю, почему источник VCL все еще использует его.

7 голосов
/ 14 декабря 2011

Директива $C называется Code segment attribute и в сочетании с ключевыми словами MOVEABLE, FIXED, DEMANDLOAD, PRELOAD, DISCARDABLE, PERMANENT изменяет атрибуты сегмента кода.

{$C MOVEABLE DEMANDLOAD DISCARDABLE} // this is setting  Code Segment Attribute.

если вы используете директиву $C с + или -, которые вы используете, чтобы включить или отключить генерацию кода для утверждений.

пример:

{$C+}    { Assertions - On }
...