gpt4 book ai didi

c++ - Qt Creator - 代码正在运行,但我从 IDE 收到一条错误消息

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:19:14 26 4
gpt4 key购买 nike

一旦我运行我的代码(请注意,我只使用 C,没有 QT 也没有 C++),我从 IDE 中的应用程序输出中得到以下消息:

Cannot obtain a handle to the inferior: The parameter is incorrect.

当我删除 makefile 和 debug/release 文件夹时,它正在运行,但一段时间后我仍然收到错误。虽然这不是什么大问题,代码运行并且一切正常,但是弹出此错误并且非常烦人。

.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()失败因此错误“无法获得下级的句柄:参数不正确。”。整个错误都没有得到非常温和的处理(嗯,现在怎么办?)... :-/

解决方案:当您添加一些用户输入操作、暂停、 sleep 、延迟或只是一些循环时,您的应用程序的执行时间稍长,错误就会消失。 ConsoleProcess::readStubOutput()时间充足在您的应用程序退出之前执行 OpenProcess()。因此,作为一种解决方法,我建议在错误修复之前这样做。

关于c++ - Qt Creator - 代码正在运行,但我从 IDE 收到一条错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21539162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com