Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

23.01.2004, 13:47

Zeit

Hallo,

Wenn ich wie im Buch beschrieben die Zeit messen möchte, kommt immer nur folgende Fehlermeldung:

c:\programme\microsoft visual studio\vc98\include\mmsystem.h(113) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'MMVERSION'
c:\programme\microsoft visual studio\vc98\include\mmsystem.h(113) : fatal error C1004: Unerwartetes Dateiende gefunden


Was muss ich machen, damit ich die Zeit messen kann. Ich habe mmsystem.h und winmm.lib eingebunden

2

23.01.2004, 15:52

also, da hast du das File das die Definition des Datentyps MMVERSION enthält nicht included.

Ich würd dir raten die QueryPerformanceCounter-Funktionen zu benutzen. Mit VC++ 7.0 muss ich für diese Funktionen nichts includen (evtl. windows.h...keine ahnung). Schau doch einfach mal in der MSDN nach.

edit:
in der datei mmssytem.h? hast du da rumgepfuscht?

edit2:
hier hast sogar noch code: alternativ kannste dir auch die GameLoop von der TriBase-Engine anschauen. Da isses auch fast genauso drinne (n bissal besser, aber auch komplexer glaub ich).

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
LONGLONG llTime1;
    LONGLONG llTime2;
    LONGLONG llStartTime;
    LONGLONG llFrequency;
    
    
    QueryPerformanceFrequency((LARGE_INTEGER*)(&llFrequency));
    QueryPerformanceCounter((LARGE_INTEGER*)(&llStartTime));
    
    while(Message.message != WM_QUIT)
    {
        QueryPerformanceCounter((LARGE_INTEGER*)(&llTime1));
        
        /*window message handling*********************/
        if(PeekMessage(&Message,NULL,NULL,NULL,PM_REMOVE))
        {   
            TranslateMessage(&Message);
            DispatchMessage(&Message);
        }
        /**********************************************/

    
//BERECHNE GAMESTATE

    

    
        /***********************************/

    QueryPerformanceCounter((LARGE_INTEGER*)(&llTime2));
    fCycleTime = static_cast<float>(llTime2-llTime1)/llFrequency;
    fTotalTime = static_cast<float>(llTime2-llStartTime)/llFrequency;
    }
    


    return S_OK;
}

Anonymous

unregistriert

3

23.01.2004, 16:18

PerformanceCounter

Ich habs jetzt mit dem QueryPerformanceCounter versucht. Allerdings kommen nur unsinnige werte heraus. ich habe es so gemacht:

llTime = (llTime2-Time1) / llFrequency;

die variablen haben bis auf llTime werte. bei llTime kommt immer 0.
was soll ich machen?

Maxi

Treue Seele

Beiträge: 136

Wohnort: Müncheberg

Beruf: Ich muss noch in die Schule

  • Private Nachricht senden

4

23.01.2004, 18:28

hatte aich auch schon, dne Fehler...

Du musst einfach WIndows.h als allererstrstes einbinden, dann müsste es gehen. Weil da UINT BOOL und DWORD usw definiert ist
Gruß, Maxi

Hier, die Homepage von meiner Band:
www.maxis-house.de

Könnt euch unsere ersten Songs saugen...

Werbeanzeige