c++ - 如何使用 C++ 在注册表中插入变量值?

标签 c++ windows variables registry

<分区>

Possible Duplicate:
Char array gives error when initializing

我想在 Windows 注册表中插入一个环境变量,所以我绑定(bind)了以下 C++ 代码:

string appDataPath = getenv("appdata");

    HKEY hkey;
    char value[] = appDataPath.c_str();

    RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\Currentversion\\Run", 0, KEY_SET_VALUE, &hkey);
    RegSetValueEx (hkey, "MyProgram", 0, REG_SZ, (LPBYTE) value, strlen(value) + 1);
    RegCloseKey(hkey);

代码块调试输出告诉我:错误:初始化程序无法确定“值”的大小 我认为这是因为编译器在编译之前需要知道我的变量的大小,但是我不知道如何解决这个问题......

谢谢!

最佳答案

c_str() 返回一个 const char*,而不是一个 char[]。变化

char value[] = appDataPath.c_str();

const char* value = appDataPath.c_str();

编译器给出错误是因为数组变量需要一个长度——但没有提供。

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

相关文章:

c++ - 无法将参数 1 从 'cli::interior_ptr<Type>' 转换为 'CvCapture **'

python - 使用 python subprocess.popen ..无法阻止 exe 停止工作提示

python - 如何将函数的结果存储在变量中而不只是打印出来?

c++ - 如何通过c++_中不同目录中的文件使用变量

windows - 同时将声音输出到多个音频设备

python - 在任何条件下返回 true 的值?

c++ - 用c++编译c时出现链接错误

c++ - 句子中的字母出现 C++

c++ - 包含引用或指针的对象 vector

windows - cygwin - 文件复制到 UNC 共享