delphi - 如何对常量定义中的MACRO和使用值进行预处理?

标签 delphi delphi-xe3

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

const
  LANG_BUL = MAKELANGID(LANG_BULGARIAN, SUBLANG_DEFAULT);

但是会得到

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

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

最佳答案

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

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

关于delphi - 如何对常量定义中的MACRO和使用值进行预处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77027177/

相关文章:

delphi - 从并排程序集创建 COM 类时出现错误 COR_E_NEWER_RUNTIME

delphi - Delphi中如何向TRichEdit插入图片?

delphi - Delphi 构建自动化的最小代理安装占用空间是多少?

delphi - 如何立即发送邮件而不提示确认对话框

delphi - 如何配置 Indy v10 支持 IPv4 + IPv6?

Delphi:泛型、接口(interface) --> 内部错误

Delphi 元素对齐方式 - 居中

delphi - 为什么使用 FILE_FLAG_NO_BUFFERING 打开文件时写入失败?

delphi - 如何检测没有焦点的控件中的修改键更改?

delphi - 连接到 SQL Server 数据库时,Delphi XE3 中出现 DBX 错误