|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 04.05.2003, 14:11 Titel: Programm[reagiert nicht] |
|
|
Wenn ich mit meinem JLI-Format-Konvertierer größere Grafiken(800*600/1024*768) umwandle rechnet der Computer meistens am Anfang ein bisschen rum und dann macht er nix mehr.
Wenn ich es dann schaffe, den Taskmanager zu öffnen, steht da, das Programm reagiere nicht.
Wisst ihr woran das liegen kann??? _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 04.05.2003, 14:26 Titel: |
|
|
Entweder er rechnet noch oder er hat sich in einer Endlosschleife aufgehängt. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
magynhard Super JLI'ler
Anmeldedatum: 26.04.2003 Beiträge: 461 Wohnort: Wild durch die Welt ;-) Medaillen: Keine
|
Verfasst am: 04.05.2003, 18:57 Titel: |
|
|
BTW.:
Ich habe auch schon erlebt, dass ein Programm im Task-Manager als [reagiert nicht] angezeigt wurde und es hängte.
Ich habe trotzdem noch gewartet und es arbeitete doch noch bis die Aufgabe erledigt war. |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 04.05.2003, 19:37 Titel: |
|
|
Wenn ein Programm vom Taskmanager als hängend erkannt wird verarbeitet es im Moment nur keine WindowsMessages, also der Messagehandler (sofern überhaupt einer existiert) wird nicht abgearbeitet. Das kann durchaus mehrere Gründe haben.
Ist es jedoch so, dass dein Programm so lange rechnet solltest du über einen Arbeitsthread nachdenken oder an der Konzeption etwas ändern. Ist die Komprimierroutine vielleicht etwas sehr zu langsam?
Ab welcher Bildgröße treten spürbare verzögerungen auf, potientiert sich die Wartezeit vielleicht mit der Bildgröße?
Eventuell kann ein Profiler helfen.
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 04.05.2003, 20:05 Titel: |
|
|
Erst ma danke für die Antworten!
Ne Endlosschleife isses nich, weil es ja bei kleineren Grafiken auch funktioniert. Und wenn er noch rechnet müsste man es doch eigentlich am Blinken eines Lichts am Rechner sehen.
Also bei größeren Bildern dauerts schon länger. Und ich habs mal erlebt bei ner Größe von 200*200 Pixeln, dass er sich aufhängt.
AFE-GmdG hat Folgendes geschrieben: | Eventuell kann ein Profiler helfen. |
Was ist denn ein Profiler? _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 04.05.2003, 20:28 Titel: |
|
|
Ein Profiler ist ein Programm, das die Laufzeiten der einzelnen Funktionen misst und dir daher sagen kann welche Funktion einen Flaschenhals darstellt. Da du aber weißt, dass sich das Programm beim Rechnen verabschiedet nehme ich mal an, das die ein Profiler auch nicht viel mehr sagen kann.
Was ich mir als Fehlerquelle noch vorstellen kann ist, dass die Komprimierungsfunktion eine Endlosschleife bei bestimmten Farbkombinationen erzeugt oder zumindest seeeehr lange rechnen muss.
Kannst due die Rechenschritte im Debugger schritt für schritt ausführen oder zumindest ein paar Haltepunkte definieren, an denen du den Inhalt einiger Variablen (wie z.B. Schleifenzähler) überprüfst?
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 04.05.2003, 20:35 Titel: |
|
|
Ich habs schon mehrere Male debuggt. Ich glaub n Fehler is nicht im Algorythmus. Es kann sein, dass die Rechenfunktion zu lange braucht. Aber warum bricht der Computer das dann ab???
PS: Irgendwie hängt sich das Programm immer auf, wenn ich debugge und gerade DirectDraw initialisiert wird. So kann ich aber net gut debuggen(wegen Funktionen, wie Farbe eines Pixels im Surface festlegen). _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 04.05.2003, 20:40 Titel: |
|
|
Versuche zum darstellen der Grafik eine ganz simples GDI-Programm zu schreiben, das deinen Funktionen einfach nur nutzt. (notfalls auch per Copy/Paste des Quellcodes, also ohne Vererbung...)
GDI-Programme lassen sich in der Regel leichter Debuggen (eigene Erfahrung) und ein GDI-Programm, dass per Pixelmalerei ein Bitmap darstellt ist nicht besonders lang.
Es kommt ja auf die Optimierung der Pack/Entpack-Routine an...
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 05.05.2003, 11:18 Titel: |
|
|
Ich hab jetzt die Rechenfunktion und die tatsächliche Komprimierungsfunktion getrennt und so gehts einigermaßen. Außerdem hab ich noch am Anfang und am Ende dieser beiden Funktionen ein akustisches Signel eigebaut, sodass man weiß, wann die Funktion beginnt/endet.
PS: Kann man ein Windowsfenster mit Backbuffer und DirectDraw machen? Ich bekomm da haufenweise Fehlermeldungen. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|