Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Rodney Junior JLI'ler
Anmeldedatum: 24.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 28.07.2004, 10:54 Titel: Nachrichtenschleifen-Prob |
|
|
Code: |
while(msg.message != WM_KEYDOWN)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
QueryPerformanceCounter((LARGE_INTEGER*)&CurCount); // aktuellen Zählerstand holen
if(CurCount > NextFrame)// wenn es Zeit für das nächste Frame ist
{
schleife();
DDrawObjekt.Flip();
NextFrame = CurCount + Offset; //Abstand zum nächsten Frame berechnen
}
}
return 0;// Rückgabewert an Windows
}
|
Bei dieser Schleife hängt sich das Prog immer total auf, ich muss den PC manuell resetten. Was ist daran falsch?
Das ganze trat erst auf nachdem ich die Frame-Begrenzung eingebaut hab sie wird folgendermaßen initalisiert:
Code: |
if(!QueryPerformanceFrequency(
(LARGE_INTEGER*)&Frequency))
{
MessageBox(0,"Performancecounter nicht vorhanden.","Fehler",MB_OK);
return -1;
}
Offset = Frequency / Framerate;// Abstand zwischen zwei Frames berechnen
QueryPerformanceCounter((LARGE_INTEGER*)&CurCount);// aktuellen Zählerstand Zeit speichern
NextFrame = CurCount + Offset;// berechnen wann nächstes Frame dargestellt wird
|
- MfG Rodney |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 28.07.2004, 12:11 Titel: |
|
|
Wasfür ein Rechner hast du? _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
Rodney Junior JLI'ler
Anmeldedatum: 24.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 28.07.2004, 12:42 Titel: |
|
|
Windows XP SP1, 2GHZ, 512DDR Ram, 80Gbyte Platte, GFS 4 Ti 4200
mit Visual C++ 6.0 und dem DirectX 9 SDK |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 28.07.2004, 14:52 Titel: |
|
|
Kann es sein, dass du vielleicht inder Funktion "schleife()" eine Endlosschleife hast?
Das wäre jetzt die einzigste Fehlerquelle, die ich entdecken 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 |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 28.07.2004, 16:46 Titel: |
|
|
Nein, er hat generell eine Endlosschleife. Ich sehe hier keine Funktion die deine Windowsnachrichten aus dem Queue entfernt, Bufferüberlauf möglich, kriegt immer dieselbe Nachricht, man kann das Programm dann niemals normal beenden,etc...
Schreib das vor TranslateMessage:
PeekMessage(&msg,NULL,0,0,PM_REMOVE); _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
Rodney Junior JLI'ler
Anmeldedatum: 24.09.2003 Beiträge: 60
Medaillen: Keine
|
Verfasst am: 29.07.2004, 13:19 Titel: |
|
|
danke, daran lags... |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 29.07.2004, 14:53 Titel: |
|
|
Ce n'est rien.  _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
|