Hello, I am writing a utility in Qt 4.8 that basically automates several tasks for my area of software development. Some of the tools I am looking to automate require the usage of WINE. Everything is running as expected except when a tool requiring WINE encounters a logical error, it seems that I only receive errors from WINE itself and not the error information from the application running within WINE.
Example:
bash output:
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:process:SetProcessDEPPolicy (1): stub
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:module:GetModuleHandleExW should pin refcount for 0x79000000
MMP: error MMP0000: Cannot locate file for assembly 'xxxx'
MMP: error MMP0000: CLR_E_ENTRY_NOT_FOUND
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:process:SetProcessDEPPolicy (1): stub
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:module:GetModuleHandleExW should pin refcount for 0x79000000
MMP: error MMP0000: Cannot locate file for assembly 'xxxx'
MMP: error MMP0000: CLR_E_ENTRY_NOT_FOUND
To copy to clipboard, switch view to plain text mode
QProcess output:
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:process:SetProcessDEPPolicy (1): stub
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:module:GetModuleHandleExW should pin refcount for 0x79000000
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:process:SetProcessDEPPolicy (1): stub
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:module:GetModuleHandleExW should pin refcount for 0x79000000
To copy to clipboard, switch view to plain text mode
Now, in both cases I used the exact same command. My usage of QProcess is as follows:
MainProcess
->setProcessChannelMode
(QProcess::MergedChannels);
MainProcess
->start
(command,
QIODevice::ReadWrite);
if(!MainProcess->waitForFinished())
{
//handle errors
}
ui->textEdit->append(MainProcess->readAllStandardOutput());
MainProcess = new QProcess(this);
MainProcess->setProcessChannelMode(QProcess::MergedChannels);
MainProcess->start(command,QIODevice::ReadWrite);
if(!MainProcess->waitForFinished())
{
//handle errors
}
ui->textEdit->append(MainProcess->readAllStandardOutput());
To copy to clipboard, switch view to plain text mode
readAllErrorOutput() returns nothing (as expected) and readAll() returns the exact same output as readAllStandardOutput().
What am I doing wrong here? Any help would be greatly appreciated, thank you.
Bookmarks