gpt4 book ai didi

delphi - Delphi 'environment variables' 例如 $(BDS) 如何评估?

转载 作者:行者123 更新时间:2023-12-03 14:36:12 26 4
gpt4 key购买 nike

我正在为我们的内部库制作一些整洁的安装程序(而不是仅仅打开 DPK 并单击“安装”然后陷入困惑......),这使我必须了解如何获取各种信息Delphi 变量如Known Packages 、注册表RootDir值等

我发现在 Delphi 中,有许多可以使用的变量(例如在搜索路径中),例如 $(BDS) 等。当我查看我的计算机环境变量时,我在系统中都看不到这些变量或当前用户。

我的问题是:

  1. Delphi 是否在内部做一些事情来扩展 $(BDS) 等本身?或者我可以以某种方式在外部使用这些(例如在注册表中查找)。
  2. 为什么搜索路径中的符号为 $(xxxx),而不是环境变量中的 %xxxx%?谢谢

最佳答案

1) 它们只是 Delphi 为其自己的进程设置的环境变量,您可以使用 GetEnvironmentStrings 检索它们。来自 IDE 中安装的设计包;这是an example .

如果您的安装程序是单独的可执行文件,您仍然可以(或多或少可靠地)猜测从哪里获取某些值:

  • BDS:注册表中的RootDir值,例如HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\8.0\
  • BDSCOMMONDIR:在旧版本(我猜是 Delphi 2007)中,这是一个全局环境变量,由 Delphi 安装程序设置。在更高版本中,您可以在 rsvars.bat 中找到它。

其他一些可能是派生出来的,例如:

  • BDSLIB:$(BDS)\lib
  • BDSINCLUDE:$(BDS)\include

用户定义的变量(在 Delphi 的“环境选项”对话框中定义)存储在Environment Variables 注册表子项中。

2) 恕我直言,$(...) 表示法更好,因为它具有不同的开始和结束分隔符,更容易用于搜索/替换操作,并且更具可读性。

关于delphi - Delphi 'environment variables' 例如 $(BDS) 如何评估?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6870282/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com