如何对宏进行预处理并在常量定义中使用值?

问题描述 投票:0回答:1

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

const
  LANG_BUL = MAKELANGID(LANG_BULGARIAN, SUBLANG_DEFAULT);

但是会得到

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

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

delphi delphi-xe3
1个回答
0
投票

Delphi 中没有宏。

MAKELANGID
是一个函数 - 请参阅单位
Winapi.Windows
。因此它不能用于定义常量。您可以手动“展开”
MAKELANGID
作为解决方法:

const
  LANG_BUL =  WORD(SUBLANG_DEFAULT shl 10) or LANG_BULGARIAN;
© www.soinside.com 2019 - 2024. All rights reserved.