c++ - 我如何使用注册表?

标签 c++ registry c++builder

有人可以用最简单的术语(我只是一个缺乏最新详细编程知识的临时程序员)来解释在 codegear C++ (2007) 中使用注册表的最简单方法。

我在我编写的旧(旧!)程序中有一行代码导致启动出现显着延迟...

DLB->Directory=pIniFile->ReadString("Options","Last Directory","no key!");

代码正在使用 ini 文件。我希望能够改用注册表(写入变量,例如应用程序使用的最后一个目录)

但细节并不重要。我只是想要一个关于使用特定于 codegear c++ builder 的注册表的通用方法。

我用谷歌搜索了这个,但像往常一样,我得到了很多关于 C++ 构建器的页面和一些关于 Windows 注册表的页面,但没有页面解释如何将两者结合使用。

最佳答案

使用TRegistry类...(包括registry.hpp)

//Untested, but something like...
TRegistry *reg = new TRegistry;
reg->RootKey = HKEY_CURRENT_USER; // Or whatever root you want to use
reg->OpenKey("theKey",true);
reg->ReadString("theParam",defaultValue);
reg->CloseKey();

请注意,打开和读取 ini 文件通常非常快,所以也许您需要测试您的假设,即读取 ini 实际上是您的问题,我不认为只是从注册表中获取您的目录名称将解决您的问题。

关于c++ - 我如何使用注册表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1197148/

相关文章:

c++ - 何时在 C++14 中使用变量 odr?

c++ - 设计问题 (C++)

如果 Windows 安装在其他语言中,Windows CMD 如何绕过确认提示

python:如何从 HKLM 中删除注册表项(和子项)(出现错误 5)

c++ - C++Builder 中的 "Could Not Load SSL Library"错误

c++ - 如何在C++ XE2中监听用IWebBrowser2运行IE的事件?

c++ - 创建我的 .exe 的批处理版本,它采用命令行参数(BCB 4.0 中的 ParamCount()、ParamStr() 和 FindCmdLineSwitch)

c++ - 使用 RegEx 在 C++ 中剥离多行注释

c# - 通过 C# 和 WMI 的 RegistryTreeChangeEvent

c++ - 如何降低(非传统的)基于Qt5/QML的软件的内存使用率?