c++ - 如何在QT Creator中检查ShellExecute命令返回(HINSTANCE)代码

标签 c++ qt winapi

我正在使用 Shell 命令启动一个进程。我的开发环境是 C++/QT Creator/QT Libraries 和 Windows APIs。

如何处理 HINSTANCE 返回值? if (hInstance < 32) 代码抛出编译错误

    437: error: ISO C++ forbids comparison between pointer and integer


    HINSTANCE hInstance = ShellExecute(0, QString("open").toStdWString().c_str(), Path.toStdWString().c_str(), 0, 0, SW_SHOWNORMAL);
   if (hInstance < 32)
      qDebug() << "Error";

最佳答案

如果有人仍在为此苦苦挣扎,这里有一个避免警告的解决方案:

int retValue = static_cast<int>(reinterpret_cast<uintptr_t>(ShellExecute(<etc>)));

参见 When is uintptr_t preferred over intptr_t?有关 uintptr_t 的更多评论

关于c++ - 如何在QT Creator中检查ShellExecute命令返回(HINSTANCE)代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10905648/

相关文章:

c++ - 为什么 "universal references"具有与右值引用相同的语法?

c++ - 二进制搜索排序 vector 中的对象,其中包含一些无意义的条目作为干扰

c++ - 如何使用参数将信号从 C++ 连接到 QML 函数

c++ - 在Qt中获取屏幕对角线尺寸

qt - Qt 的 moc 预处理器是否需要所有 C++ 预处理器标志

c++ - 通用游戏 (RTS) 脚本基础知识

c++ - 如何使用 ""初始化 std::string ?

c++ - 如何将列表控件项标记为选中?

c++ - 如何正确显示不同语言的字符?

winapi - 什么时候创建消息队列?