Если приложения Delphi используют библиотеки DLL (также созданные с помощью Delphi), будет ли несколько версий переменных, объявленных в System.pas?
Я только что прочитал Как определить, работаю ли я как консольное приложение? (Delphi на Win32) и комментарий объясняет, что может быть несколько версий, например, System.IsConsole, которые имеют разные значения - True в EXE и False в DLL (если он был скомпилирован с использованием $ APPTYPE CONSOLE) .
Но другие переменные, по-видимому, предназначены для значений для всего приложения, например
MainInstance: LongWord; { Handle of the main(.EXE) HInstance }
CPUCount: Integer; { Number of CPU Cores detected }
Как разработчики могут видеть, какие значения будут назначены на уровне приложения, а какие переменные зависят от модуля (и поэтому могут иметь разные значения в DLL и EXE)?
Или я неправильно понимаю эти глобальные переменные? Например, документация для System.BeginThread гласит, что она устанавливает глобальную переменную System.IsMultiThread , но как это может быть глобальная переменная, а System.IsConsole - нет?