#ifdef _UNICODE
// 如果定义了 _UNICODE,这意味着程序正在使用 Unicode 字符集进行编译。
// Unicode 字符集是现代 Windows 应用程序普遍使用的字符编码方式,支持多语言字符。
#if defined _M_IX86
// 如果定义了 _M_IX86,这意味着程序正在针对 x86 架构(32 位处理器)进行编译。
// 32 位应用程序需要特定的依赖项配置,以确保其在目标平台上运行正确。
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
// 使用 #pragma comment(linker, ...) 命令告诉链接器将指定的 manifest 依赖项嵌入到生成的可执行文件中。
// 这里指定了应用程序的依赖项,即 Microsoft.Windows.Common-Controls 6.0,这个库包括了 Windows 的现代控件样式。
// 'x86' 指定了依赖项适用于 32 位架构。
#elif defined _M_X64
// 如果定义了 _M_X64,这意味着程序正在针对 x64 架构(64 位处理器)进行编译。
// 64 位应用程序需要不同的依赖项配置,适用于 x64 架构。
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
// 同样使用 #pragma comment(linker, ...) 命令来指定依赖项,
// 这里的 processorArchitecture='amd64' 指定依赖项适用于 64 位架构。
#else
// 如果程序不是针对 x86 也不是针对 x64 架构进行编译,
// 那么这个分支将处理其他类型的架构(可能是 ARM、Itanium 或其他未来的架构)。
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
// 在这种情况下,processorArchitecture='*' 表示这个依赖项适用于任何处理器架构,
// 不限定于 x86 或 x64。这对通用架构的二进制文件有帮助,确保它们在任何平台上都能使用现代控件样式。
#endif
// 结束架构选择的条件编译。
// 这部分结束了对 _M_IX86、_M_X64 或其他架构的检查。
#endif
// 结束 _UNICODE 条件编译。
// 如果没有定义 _UNICODE,整个这段代码块都不会被编译进可执行文件中。