delphi 如何预处理MACRO并在常量定义中使用值?

ha5z0ras  于 2023-10-18  发布在  Mac
关注(0)|答案(1)|浏览(142)

在 Delphi 中,我想定义如下常量:

const
  LANG_BUL = MAKELANGID(LANG_BULGARIAN, SUBLANG_DEFAULT);

但会得到

[dcc32 Error] Utils.pas(15): E2026 Constant expression expected

如何让编译器在编译开始前预处理宏并生成常量?

jmo0nnb3

jmo0nnb31#

在 Delphi 中没有宏。MAKELANGID是一个函数-参见单元Winapi.Windows。因此,它不能用来定义一个常数。您可以手动“展开”MAKELANGID作为解决方法:

const
  LANG_BUL =  WORD(SUBLANG_DEFAULT shl 10) or LANG_BULGARIAN;

相关问题