Destructor Problem: Bei Abfrage zum Speichern vor beenden, soll die Lizenz geprüft werden



  • Guten Tag,

    ich habe leider immer noch ein Problem im Destructor meiner APP.

    Wenn man die APP schließt, kommt bis jetzt nur die Abfrage, ob gespeichert werden soll, mit Auswahlbox, JA/NEIN und alles wird ordentlich abgearbeitet.

    Da dort aber noch eine Abfrage rein soll welche die gültige Lizenz prüft, habe ich, wie unten angezeigt, mehrere Ansätze geprüft, leider ohne Erfolg.

    Das derzeitige Ergebnis ist immer, dass die APP die Abfrage JA/NEIN noch anzeigt, wenn ich aber JA (zum speichern) bestätige, stürzt die komplette APP ab und arbeitet auch nicht mehr die nachfolgenden Befehle im Destructor ab.

    Hat jemand eine Lösung die funktioniert?

    Hier der Code...

    CWSM::~CWSM()
    {
    	Logger::debuglog("CWSM::~CWSM()..");
    // check if config needs to be saved
    	if (m_SaveMode != NO_SAVE && getConfChange() == TRUE)
    	{
    		BOOL bSaver = TRUE;
    // get the msg box
    		if (m_SaveMode == ASK)
    		{
    /* no go		if(m_pWSM->getLic().eLic == LICENSE_INVALID){
    				MessageBox(m_pML->getc(MSG_UNREGISTERED_TEXT), m_pML->getc(MSG_UNREGISTERED_CAPTION), MB_ICONINFORMATION);
    				return;
    			}*/
    			int rc = MessageBox(m_pML->get(MSGBOX_SAVE_ON_EXIT).data(), m_pML->get(MSGBOX_QUESTION).data(), MB_YESNO|MB_ICONQUESTION);
    			if (rc == IDNO)
    			{
    				bSaver = FALSE;
    			}
    		}
    // save the config
    /* no go	if (bSaver == TRUE && m_pWSM->getLic().eLic != LICENSE_INVALID)
    		{
    			writeConfD(pConf->getConfigFileN(), TRUE, FALSE);
    		}*/
    		if (bSaver == TRUE)
    		{
    			if(m_pWSM->getLic().eLic == LICENSE_INVALID){
    				MessageBox(m_pML->getc(MSG_UNREGISTERED_TEXT), m_pML->getc(MSG_UNREGISTERED_CAPTION), MB_ICONINFORMATION);
    			}else{
    			writeConfD(pConf->getConfigFileN(), TRUE, FALSE);
    			}
    		}
    	}
    // save winpos
    	if (m_pGuiConstruct){
    		UINT32 x, y, cx, cy; bool zoomed;
    		m_pGuiConstruct->getWinPos(x, y, cx, cy, zoomed);
    		pConf->setConfOption("WinPos_Zoomed", zoomed == true ? 1 : 0, CFG_GLOBAL);
    		pConf->setConfOption("WinPos_X", x, CFG_GLOBAL);
    		pConf->setConfOption("WinPos_Y", y, CFG_GLOBAL);
    		pConf->setConfOption("WinPos_Width", cx, CFG_GLOBAL);
    		pConf->setConfOption("WinPos_Height", cy, CFG_GLOBAL);
    	}
    // save global config
    	writeConfD((char*)(pConf->getGloblConfFileN().data()), TRUE, TRUE);
    	killAll();
    	Logger::debuglog("CWSM::~CWSM()..OK");
    }
    

    Vielen Dank für jede Hilfe! 🙂



  • Hallo nochmals,

    habe das Problem nun selbst gelöst.

    Damit kann der Beitrag von mir aus gern gelöscht werden.

    Gruß


Anmelden zum Antworten