Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [VB2010] Il programma ha smesso di funzionare...

    Questa è l' ultima che mi capita.

    Al load di un programma inserisco delle routines di controllo e se qualcosa non torna lancio un MessageBox di Info seguito da un Me.Close.

    Ebbene, alla esecuzione del Me.Close appare una finestra di Windows che dice "Il programma ha smesso di funzionare... Windows: è in corso la ricerca di una soluzione al problema..."

    Ma quale problema? Ma quale smesso di funzionare? Ho dato un semplicissimo Me.Close...
    .

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    La causa non sarà direttamente il Me.Close ma qualcosa che viene chiuso/terminato in conseguenza del Me.Close. Bisogna esaminare tutto il codice nella sua complessità per capire.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Ha i ragione, mio errore da fretta.

    Lo specifico errore che produce la finestrella non è generato da uno dei controlli che faccio in Form_Load ma nel primissimo controllo che faccio in ApplicationEvents:

    codice:
    Private Sub MyApplication_Startup(ByVal sender As Object.......
    
            'La Function FirstControl è in un Modulo
            If Not FirstControl() Then
                 e.Cancel = True     
            End If
    
    End Sub
    In FirstControl cerco un dato specifico (Try... Catch non genera errore, se lo generasse in Catch genererei un altro messaggio, semplicemente non trovo il dato), il Return è:

    codice:
            If Data= "" Then
                MessageBox.Show(My.Resources.Messages.NoDataFound)
                Return False
            Else
                Return True
            End If
    Ma anche lì non vedo nulla di particolare...

    Lanciando il programma da VS2010 non visualizzo la finestrella del messaggio di Windows né in Debug Mode né un Release Mode. .

    Il messaggio lo visualizzo SOLO lanciando l' exe installato (con Inno Setup) nella cartella Programmi x86.... (i programma è compilato x86, Framework 2.0)

    .

  4. #4
    errata corrige: lo sto forzando a generare errori... la finestrella appare anche per uscite in Form_Load:

    codice:
        If Dealer = "" then
             MessageBox.Show(My.Resources.Messages.NoDealer)
             Me.Close()
             'metto Exit Sub perché se no prima di chiudersi continua
             'ad elaborare comunque il codice fino a End Sub
             Exit Sub
         End If
    Il codice è semplice, prima di arrivare all' If non ci sono errori o eccezioni, Dealer è veramente = "", ce l' lo ho settato io...

  5. #5
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Giusto per curiosità, nel registro eventi di Windows trovi traccia del tuo programma?
    Magari trovi qualche informazione utile...
    Hai provato a spostare il codice in un' altro evento tipo Shown?

  6. #6
    Risolto.

    Come vi dicevo sia in Debug Mode che in Release mode i messaggi non comparivano.... ho ricreato l' installer (il precedente era di un paio di mesetti fa), reinstallato ed adesso anche l' exe nella cartella dei Programmi non dà più messaggi.

    Non chiedetemi il perché... mistero della fede.

    Sorry per il disturbo.

  7. #7
    In casi del genere, comunque, puoi sempre avviare il programma (nella modalità che dà problemi) e agganciare il debugger solo dopo che è partito (c'è da qualche parte in VS il comando "Collega a processo" o roba del genere), in modo da debuggarlo nella configurazione che dà problemi.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.