Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    8

    [VB] Stack Overflow

    Salve a tutti..
    Premetto che non ne capisco molto di programmazione...ma nonostante questo provado e provando sono riuscito a compilare un programma tramite AUTOIT v3 che mi serve per un gioco...
    Devo dire che funziona ottimamente..l'unico problema e che dopo un paio di ore di funzionamento mi da l'errore si Stack Overflow..
    So che riguarda la memoria ma non so proprio come risolvere il problema...
    C'è qualcuno che mi puo dare qualche delucidazione in merito?
    Il codice è di circa 900 linee...postarlo qui sarebbe difficile...
    Grazie...

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Originariamente inviato da Riders
    Devo dire che funziona ottimamente..l'unico problema e che dopo un paio di ore di funzionamento mi da l'errore si Stack Overflow..
    So che riguarda la memoria ma non so proprio come risolvere il problema...
    C'è qualcuno che mi puo dare qualche delucidazione in merito?
    Come si può darti un aiuto senza sapere nulla del codice che hai scritto?

    E poi, che versione di VB sarebbe? (non l'hai indicata nel titolo)

    Verifica qual è il punto in cui viene segnalato l'errore, e qual è l'operazione che viene svolta in quel contesto, così da poter focalizzare l'attenzione su un pezzo particolare di codice che molto probabilmente è quello che genera il difetto.

    Così come è posta, la domanda è inaffrontabile.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    8
    AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting...
    Il programma che sto usando è free e sinceramente non so che versione di Basic è..

    Per quando riguarda l'errore di Stack purtoppo ogni volta che me lo da segnala una riga differente...non mi da l'errore sempre alla stessa linea...dopo circa 2 ore di funzionamento...

    Il codice potrei mandartelo in qualche modo per fartelo visionare...

    Come ho detto è una produzione propria di chi non ha fatto programmazione logicamente con tutti gli errori che ne derivano....

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Quindi non utilizzi VB ma AutoIt ...

    Probabilmente chiami qualche parte del programma ricorsivamente, senza controllare la fine della ricorsione.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    E possibile che non sia colpa tua ma della gestione automatica della memoria di auto-it, comunque se vuoi maggiore aiuto dovresti postare il codice.

    P.s. Usi file? Quando li apri poi li chiudi? Ci sono chiamate ricorsive?
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    8
    Visto che il codice si visualizza solo con il programma installato non vi chiedo di installare il programma ma a limite di dargli un occhiata in txt

    http://www.qfpost.com/file/d?g=6JPYYMukx

    questo è il link del download

    è molto intrecciato data la mia ignoranza nel settore...quindi non chiedo di aggiustarlo ma solo di vedere propro l'errore tecnico dov'è...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    8
    So che non è faciele da capire proprio perchè secondo me non rispecchia proprio niente della programmazione...
    Purtoppo sono appassionato di informatica ma di programmazione non so niente...e a fare un programma che faccia tutto da solo alla fine l'ho fatto e mi funziona bene...se non fosse per questo problema...
    Anche io avevo pensato che poteva essere un problema di limite del programma...infatti l'errore che mi da è " che lo script è stato terminato per PREVENIRE un PROBABILE problema di
    Stack "...quindi non è neanche detto che il problema sia nel codice...

  8. #8
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    attacco_sx chiama maresinistra che potrebbe chiamare attacco_sx...
    è solo un esempio (non lo leggerò tutto ne posso mettemri a verificare le condizioni che lo regolano) ma è il classico modo per finire in stackoverflow.

    Una funzione quando chiama un altra è come se si mettesse un mattone sopra un altro mattone. Quando una funzione termina viene tolto un mattone e non puoi avere piu di un certo numero di mattoni impilati. Se A chiama B che chiama A crei un ciclo di chiamate infinito che termina appunto con uno stackoverflow: troppi mattoni

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    8
    ok..grazie mille.. non so come risolvere...forse con un altro mese di tentativi qualcosa succederà

  10. #10
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    tieni conto che tutte quelle chiamate sono inserite in un ciclo infinito (while 0=0) che si ripete in continuazione. Quande sei in maredestra, maresinistra ecc, non c'è bisogno che ti ricavi nuovamente gli input con i vari pixelsearch perche lo farai al prossimo giro nella function inizio.

    in un videogame generalmente il ciclo infinito è fatto logicamente cosi:

    codice:
    while (0=0) //per sempre
    {
        i=LeggiInput()
        Azione(i) //azione in funzione dell'input letto
        //...eventualmente...
        ridisegnaSchermo() //sembra che il tuo framework lo faccia da se.
    }
    tutto in modo "atomico" rispetto al singolo input letto nel singolo giro all'interno del while. poi la palla ritorna al giro successivo.

    Nel tuo codice invece sembra (sembra perche non conosco assolutamente il framework per cui posso al massimo intuire) che quando leggi un input e ti comporti di conseguenza poi ritorni a rileggere nuovamente l'input nell'ambito dello stesso ciclo quando invece non dovresti fare nulla se non ridisegnare la mappa e passare la palla al prossimo giro.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.