[Interest] QApplication fails to start on release mode when using Qt as a backend of a plugin (Windows)

Nuno Santos nunosantos at imaginando.pt
Thu Sep 17 12:36:04 CEST 2015


Hi,

Im having a really awkward situation when trying to start QApplication 
inside a plugin. Everything works in debug mode. I have struggled a bit 
on debug mode to get rid of an ASSERTION warning: 
Q_ASSERT(allArguments.size() == origArgc);
When I sucessfully managed to inject the very same argc and argv into 
QApplication constructor everything started fine on debug build. This is 
the code I'm using to fetch the command line args and start QApplication:

// defined as global variables
static int argc;
static char **argv;

LPWSTR *argvv = CommandLineToArgvW(GetCommandLineW(), &argc);
argv = new char*[argc];
argv[0] = 
qstrdup(QString::fromStdWString(argvv[0]).toLocal8Bit().constData());

qDebug("Before QApplication constructor: %s",argv[0]);
app = new QApplication(argc, argv);
qDebug("After QApplication constructor)";

The problem is that on Release build, the plugin crashes as soon as it 
is initiliazed and I can't understand why. The only thing I have is the 
vague output:

Before QApplication constructor: C:\ProgramData\Ableton\Live 9 
Standard\Program\Ableton Live 9 Standard.exe
First-chance exception at 0x148AC104 (drc.dll) in Ableton Live 9 
Standard.exe: 0xC0000005: Access violation reading location 0x00000000.

It seems that it is trying to access a null pointer.

Any ideas of what might be happening here?

Thanks in advance,

Regards,

Nuno










More information about the Interest mailing list