读取字符串值 - RegistryGetString
函数简介
读取字符串类型的注册表值(REG_SZ/REG_EXPAND_SZ),用于获取文本信息。
接口名称
RegistryGetString
DLL调用
int64_t RegistryGetString(int64_t instance, int64_t key, const char* valueName)
参数定义:
instance(长整型数): OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。key(长整型数): 注册表键句柄,由 RegistryOpenKey 或 RegistryCreateKey 返回valueName(字符串): 值名称,空字符串表示读取默认值
示例:
// 创建OLA对象
int64_t instance = CreateCOLAPlugInterFace();
// 打开注册表键
int64_t key = RegistryOpenKey(instance, 1, "Software\\OLAPlug\\Config");
if (key != 0) {
// 读取字符串值
int64_t strPtr = RegistryGetString(instance, key, "AppName");
if (strPtr != 0) {
const char* appName = (const char*)strPtr;
printf("应用名称: %s\n", appName);
// 释放字符串内存
FreeStringPtr(instance, strPtr);
} else {
printf("读取字符串值失败或值不存在\n");
}
// 读取默认值
strPtr = RegistryGetString(instance, key, "");
if (strPtr != 0) {
printf("默认值: %s\n", (const char*)strPtr);
FreeStringPtr(instance, strPtr);
}
// 关闭注册表键
RegistryCloseKey(instance, key);
}
// 释放资源
DestroyCOLAPlugInterFace(instance);
返回值
长整型数:
- 成功: 返回字符串内容的句柄(非0值)
- 失败或不存在: 返回 0
注意事项
- 返回的字符串句柄需使用 FreeStringPtr 释放
- 空字符串作为值名称表示读取默认值
- 支持读取 REG_SZ 和 REG_EXPAND_SZ 类型
- 如果值类型不是字符串类型,将返回 0
- 返回值为 0 可能表示值不存在或读取失败
