Immer eine Warnung C4189 "lokale variable wird initialisiert, aber nicht referenziert" obwohl die variable referenziert wird
Habe ich ein Stück C++ - code mit Qt, wo ich versuchen, führen Sie eine batch-Datei in der Eingabeaufforderung. Ich benutze eine QProcess
Objekt beginnen cmd.exe
und ausführen meiner batch-Datei. Unten ist der code, den ich verwende:
void Utility::executeBatchFile(QString batchFile)
{
QProcess *process = new QProcess(this);
QString cmdName = "cmd.exe";
QStringList arguments;
arguments<<"/k" << batchFile;
process->startDetached(cmdName, arguments);
}
Wenn Baue ich es in Qt Creator, bekomme ich eine Warnung:
Achtung: C4189: 'Prozess' : lokale variable wird initialisiert, aber nicht referenziert
Die variable process
wird in der letzten Zeile der Funktion, und ich bin nicht in der Lage, um herauszufinden, warum genau diese Warnung wird angezeigt.
- Und Sie sind undicht
process
auch... - Oh, ja!! Danke für den Hinweis! Ich hatte Total vergessen das zu löschen. Anyway, wie es aussieht, kann ich direkt aufrufen, QProcess::startDetached() anstatt ein Objekt zu erstellen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil
startDetached
ist eine statische member-Funktion. Sie schreiben darfprocess->startDetached(...)
zur Angabe der namespace, in dem der compiler sucht die member-Namen, stattQProcess::startDetached(...)
. Aber die beiden Aufrufe sind identisch; der Anruf wird nicht verwenden Sie den Wertprocess
.