Qt 创建器 - 代码正在运行,但我从 IDE 收到错误消息
Qt Creator - Code is running but I get an error message from the IDE
一旦我运行我的代码(请注意,我只使用C,没有QT,也没有C++),我就会从IDE中的应用程序输出中收到以下消息:
无法获取下级的句柄:参数不正确。
当我删除生成文件和调试/发布文件夹时,它正在运行,但一段时间后我仍然收到错误。不过这不是什么大问题,代码运行并且一切正常,但是弹出此错误并且非常烦人。
.pro 文件的内容是:
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
QMAKE_CC = gcc -std=c99
SOURCES += main.c
提前感谢!
编辑:我添加了C++标签,因为此错误也发生在C++控制台应用程序中,就像我的情况一样。
我遇到了同样的问题。论坛上的提示和建议相当无能为力,所以我自己调查了问题,我发现这是QtCreator中的一个错误。
有一个肮脏的小程序叫qtcreator_process_stub
。每当在 IDE 中运行程序时,IDE 都会首先运行qtcreator_process_stub
并将程序名称作为参数(以及其他一些参数)传递。 然后qtcreator_process_stub
程序作为单独的进程启动并打印其PID(在Windows上还有线程ID)。信息被打印到管道上,然后由ConsoleProcess::readStubOutput()
读取,这是QtCreator使用的Utils.dll
库的一部分。
当"劣质"进程(您的应用程序)在整个通信处理之前完成执行时,会出现此问题。ConsoleProcess::readStubOutput()
尝试在具有封闭句柄的不存在的进程中使用OpenProcess()
。OpenProcess()
失败,因此错误"无法获取下级的句柄:参数不正确。整个错误没有得到非常温和的处理(嗯,现在呢?... :-/
解决方案:当你添加一些用户输入动作时,暂停、休眠、延迟或只是一些循环,这样你的应用执行时间稍长一点错误就会消失。在应用程序退出之前,ConsoleProcess::readStubOutput()
有足够的时间执行OpenProcess()
。因此,作为工作对象,我建议这样做,直到错误得到修复。
我在Qt中处理C++项目时反复遇到同样的错误。我能够通过将我正在使用的共享库之一(.dll)复制到构建文件夹中来解决它。
因此,如果您使用的是运行时所需的任何共享外部库,请确保它们位于 build 文件夹中。
- boost::进程间消息队列引发错误
- 在线编译器中的分段C++没有打印消息
- C++错误消息*成员参考.**初学者*
- C++:如何在CLion IDE中安装Boost
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 要与"if constexpr"一起使用的编译时消息(在预处理器之后)
- 如何通过参数抛出错误消息
- 从服务器传输到客户端的消息不会出现
- ROS2 动态消息模板
- C++秘密消息学校作业
- glad 导致 glfwSwapBuffers 返回错误消息
- C++入门 5 版:类消息和文件夹
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- IDE (CLion) 无法解析C++模板类型
- 如何处理从一个对象传递到另一个在C++中具有公共抽象类的对象的消息
- 如何接受 [ENTER] 键作为无效输入并发送错误消息
- 将 API 链接消息解析为 C (Arduino IDE) 中的服务器
- Qt 创建器 - 代码正在运行,但我从 IDE 收到错误消息
- 带有更友好的错误消息的c++ IDE
- Bada IDE有代码完成和有意义的错误消息吗?