我正在构建一个可能有不同任务的应用程序,具体取决于运行它的操作系统,因此我想知道是否有任何方法可以检测操作系统并将其存储在变量中。
答案 0 :(得分:1)
因为您必须为每个操作系统编译单独的可执行文件,所以您可以使用{$IFDEF}
:
{$IFDEF MACOS} // Mac OSX
{$IFDEF WIN64} // Windows 64 bit
{$IFDEF WIN32} // Windows 32 bit app
{$IFDEF Linux} // Linux
{$IFDEF UNIX} // UNIX
您可以使用SysUtils.TOSVersion.Architecture
从32位应用中区分Win32和Win64;可能的值为arIntelX86
和arIntelX64
,一般(不考虑“位数”)Windows和MacOS之间的TOSVersion.Platform
。