>我有以下几点:
wxIntPtr* value;
CreateRegKey();
if (regkeyexist) {
if (regKey->HasValue("LoggingStatus")) {
regKey->QueryValue("LoggingStatus", value);
if (value == 1)
但是我得到错误,因为C ++禁止指针和整数之间的比较
这应该编译,但我不知道它是否是你想要的:
...
if (*value == 1)
...
您正在尝试将int
与pointer
进行比较
如果您确实想查看pointer
是否1
if (value == (wxIntPtr*)(1))
否则,如果您尝试与 value
指出的值进行比较
if (*value == 1)
虽然我不知道你为什么要做第一个:)
我认为您可能应该做的是以下内容:
wxIntPtr value; // wxIntPtr on the stack
...
regKey->QueryValue("LoggingStatus", &value); // Pass by reference to modify.
if (value == 1)
这是大多数Windows编程的完成方式,API调用初始化您自己实例化的值和结构。很有可能当你wxIntPtr* value
传递给QueryValue()
时,它会尝试并像这样设置它的值:
QueryValue("LoggingStatus", &value) { *value = 1; } // For example.
在您的情况下,这将在尝试取消引用未初始化的指针时导致崩溃。