Mein WallpaperChanger hat Bugs :(

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Programie
Beiträge: 1280
Registriert: 06.08.2005 22:56
Computerausstattung: https://www.sysprofile.de/id160800
Wohnort: Gernsbach
Kontaktdaten:

Mein WallpaperChanger hat Bugs :(

Beitrag von Programie »

Hi,

Ich hab ja selbst mal einen WallpaperChanger programmiert, aber der stürzt immer mal wieder beim Einlesen der Bilder ab.
Wenn ich ihn dann mit PureBasic debugge, sagt PureBasic, dass da ein "Invalid Memory Access" währe.
Woher kann das kommen? :(

Achja, hier ist der Quellcode. :wink:

PS: Er stürzt ab, wenn man mehr als etwa 1000 Bilder in der Bilderliste hat.

Hat jemand eine Idee, warum der ständig abstürzt?
Vielleicht kann ja jemand das mal Testen, der auch 1000 Bilder oder mehr hat. :allright:

Thx schonmal im Voraus! :allright:
BildBildBildBild
Benutzeravatar
tobe
Beiträge: 146
Registriert: 14.09.2006 17:33
Wohnort: Oktoberfest

Beitrag von tobe »

hallo Programie,

entweder ist dein Quellcode nicht ganz vollständig oder du benutzt userlibs, weil AppRunning() kennt mein purebasic nicht.

mfG
tobe
PureBasic 4.40 (Windows - x86)
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

AppRunning() ist ein Befehl aus den PBOSL, eine große, öffentliche Userlibrary. Die hast du nicht installiert (ich auch nicht^^).
Deswegen kennt dein PureBasic den Befehl nicht.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Programie
Beiträge: 1280
Registriert: 06.08.2005 22:56
Computerausstattung: https://www.sysprofile.de/id160800
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von Programie »

Also die einzige UserLib-Funktion, die ich in meinem Programm verwende, ist "AppRunning()" aus der PBOSL (PureBasicOpenSourceLibrary). :wink:
BildBildBildBild
lfy
Beiträge: 30
Registriert: 21.04.2007 20:01

Beitrag von lfy »

Moin,

bei

Code: Alles auswählen

CreateFile(1000,"c:\a_1000.test")
passiert dasselbe, allerdings bekommt man hier dann die Ursache zu sehen.
Die Filenummer darf nicht => 1000 sein.

Ich habe mir den Quellcode nicht komplett angesehen, aber zumindest bei Deiner Prozedur "IsFileEx(" verwendest Du PB_Any. Wenn diese Procedere in einer Schleife mit mehr als 999 Durchläufen aufgerufen wird dann knallt es...

VG lfy
Benutzeravatar
Programie
Beiträge: 1280
Registriert: 06.08.2005 22:56
Computerausstattung: https://www.sysprofile.de/id160800
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von Programie »

lfy hat geschrieben:Ich habe mir den Quellcode nicht komplett angesehen, aber zumindest bei Deiner Prozedur "IsFileEx(" verwendest Du PB_Any. Wenn diese Procedere in einer Schleife mit mehr als 999 Durchläufen aufgerufen wird dann knallt es...
Die wird aber nicht in einer Schleife aufgerufen. <)

Achja, ich hab die Stelle mit dem IMA (Invalid Memory Access) jetzt gefunden!
Das hier wird als Fehler markiert:

Code: Alles auswählen

SetGadgetText(#Image_Message,Path$+Name$)
Diese Zeile gibt den aktuellen Dateiname mit Pfad in dem Info-Fenster aus, welches beim Start erscheint, wenn die Bilder geladen werden.
Beim ersten Start ging es. Aber als ich mein Programm dann wieder beendete und neu getstartet hatte, kam dann dieser Fehler. :(
Was kann an SetGadgetText() falsch sein? :mrgreen:
BildBildBildBild
lfy
Beiträge: 30
Registriert: 21.04.2007 20:01

Beitrag von lfy »

Meiner Meinung nach hat es definitiv etwas mit der Filenummer > 1000 zu tun.
Wenn Du ein wenig probierst und Dir die Variablenliste anschaust so wirst Du sicherlich feststellen, dass es immer bei Dateinummer 1000 knallt.

Vg lfy
Benutzeravatar
Programie
Beiträge: 1280
Registriert: 06.08.2005 22:56
Computerausstattung: https://www.sysprofile.de/id160800
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von Programie »

Achja, es werden bei mir 1423 Bilder geladen. Ist das zu viel für eine LinkedList? :lol:
Also 1423 Elemente in der LinkedList.^^
BildBildBildBild
lfy
Beiträge: 30
Registriert: 21.04.2007 20:01

Beitrag von lfy »

Programie hat geschrieben:Achja, es werden bei mir 1423 Bilder geladen. Ist das zu viel für eine LinkedList? :lol:
Also 1423 Elemente in der LinkedList.^^
Wo hatte ich LinkedList erwähnt?
Ich habe sinngemäß geschrieben: Wenn die Filenummer => 1000 ist dann schmieren alle Filebefehle mit denselben Symptomen ab.

Obwohl mein Vorschlag mit der Variablenliste schwachsinnig war.

Probiere doch einfach mal:

Code: Alles auswählen

CreateFile(999,"c:\a_999.test") ; <- funktioniert
CreateFile(1000,"c:\a_1000.test") ; <- funktioniert NICHT
Benutzeravatar
Programie
Beiträge: 1280
Registriert: 06.08.2005 22:56
Computerausstattung: https://www.sysprofile.de/id160800
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von Programie »

lfy hat geschrieben:
Programie hat geschrieben:Achja, es werden bei mir 1423 Bilder geladen. Ist das zu viel für eine LinkedList? :lol:
Also 1423 Elemente in der LinkedList.^^
Wo hatte ich LinkedList erwähnt?
Ich habe sinngemäß geschrieben: Wenn die Filenummer => 1000 ist dann schmieren alle Filebefehle mit denselben Symptomen ab.

Obwohl mein Vorschlag mit der Variablenliste schwachsinnig war.

Probiere doch einfach mal:

Code: Alles auswählen

CreateFile(999,"c:\a_999.test") ; <- funktioniert
CreateFile(1000,"c:\a_1000.test") ; <- funktioniert NICHT
Aber bei mir im Code wird keine Datei geöffnet oder erstellt, bei der die Dateinummer größer als 999 ist. :roll:
Oder habe ich da irgendwo etwas übersehen?
Achja, der Fehler hat ja nichts mit Dateien zu tun. :allright:
BildBildBildBild
Antworten