Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:ISO C++禁止指针和整数的比较_C++ - Fatal编程技术网

错误:ISO C++禁止指针和整数的比较

错误:ISO C++禁止指针和整数的比较,c++,C++,我有以下资料: wxIntPtr* value; CreateRegKey(); if (regkeyexist) { if (regKey->HasValue("LoggingStatus")) { regKey->QueryValue("LoggingStatus", value); if (value == 1) 不过,我得到了错误,因为C++禁止指针和整数< /P> < P>的比较。这应

我有以下资料:

    wxIntPtr* value;
    CreateRegKey();
    if (regkeyexist) {
        if (regKey->HasValue("LoggingStatus")) {
            regKey->QueryValue("LoggingStatus", value);
            if (value == 1)

不过,我得到了错误,因为C++禁止指针和整数< /P> < P>的比较。这应该编译,但我不知道它是不是你想要的:< /P>

...
if (*value == 1)
...

您正在尝试将int与指针进行比较

如果您确实试图查看指针是否为1

否则,如果您试图与值所指向的值进行比较

虽然我不知道你为什么要做第一件事:

我认为你应该做的是:

    wxIntPtr* value;
    CreateRegKey();
    if (regkeyexist) {
        if (regKey->HasValue("LoggingStatus")) {
            regKey->QueryValue("LoggingStatus", value);
            if (value == 1)
这就是大多数Windows编程的方式,API调用初始化您自己实例化的值和结构。很可能,当您将wxIntPtr*值传递给QueryValue时,它会尝试如下方式设置它的值:

QueryValue("LoggingStatus", &value) { *value = 1; } // For example.

在您的情况下,当它尝试取消对未初始化指针的引用时,这将导致崩溃。

@Anonymous srsly?您希望该值会指向地址1?@Anonymous:这将强制编译代码,但不会使其行为合理。OP要求删除错误,所以我告诉:/I正在从注册表获取该值
wxIntPtr value; // wxIntPtr on the stack
...
regKey->QueryValue("LoggingStatus", &value); // Pass by reference to modify.
        if (value == 1)
QueryValue("LoggingStatus", &value) { *value = 1; } // For example.