int JUCEApplication::main (const String& commandLine) { ScopedJuceInitialiser_GUI libraryInitialiser; jassert (createInstance != nullptr); int returnCode = 0; { const ScopedPointer<JUCEApplication> app (dynamic_cast <JUCEApplication*> (createInstance())); jassert (app != nullptr); if (! app->initialiseApp (commandLine)) return 0; JUCE_TRY { // loop until a quit message is received.. MessageManager::getInstance()->runDispatchLoop(); } JUCE_CATCH_EXCEPTION returnCode = app->shutdownApp(); } return returnCode; }