Miromurr Skrevet 18. oktober 2008 Del Skrevet 18. oktober 2008 Hei! I programmet mitt har jeg en klasse ('class Timer') som fungerer som, vell, timeren til programmet. Desverre får jeg en error når jeg prøver å kompilere programmet: error line 4: redefinition of `class Timer' error line 4: previous definition of `class Timer' Får også redefinition error til alle funksjonene i klassen. Poster bare koden til timer klassen her: Timer.h: #include <windows.h> class Timer { public: float targetfps; float fps; LARGE_INTEGER tickspersecond; LARGE_INTEGER currentticks; LARGE_INTEGER framedelay; float speedfactor; void Init( float tfps); void SetSpeedFactor(); }; void Timer::Init( float tfps ) { targetfps = tfps; QueryPerformanceCounter(&framedelay); QueryPerformanceFrequency(&tickspersecond); } void Timer::SetSpeedFactor() { QueryPerformanceCounter(¤tticks); speedfactor = (float)(currentticks.QuadPart-framedelay.QuadPart)/((float)tickspersecond.QuadPart/targetfps); fps = targetfps/speedfactor; if (speedfactor <= 0) speedfactor = 1; framedelay = currentticks; } Bruker Code::Blocks som compiler. Noen som kan hjelpe meg litt her? Miromurr Lenke til kommentar
Giddion Skrevet 18. oktober 2008 Del Skrevet 18. oktober 2008 Jeg lurer på om du inkludere headeren (som du lastet opp) to eller flere ganger enten direkte eller indirekte via andre headere. Prøv å legg til noe alla dette #ifndef TIMER_H #define TIMER_H //hele koden du lastet opp her #endif Du kan jo også prøve å legge til "#pragma once" i headeren som er en gcc/msc++ utvidelse som skal gjøre det samme. Lykke til Lenke til kommentar
Miromurr Skrevet 18. oktober 2008 Forfatter Del Skrevet 18. oktober 2008 Takker! Fant faktisk ut at det var en feil med en av de andre filene mine som forårsaket problemet, men takk uannsett... Miromurr Lenke til kommentar
Miromurr Skrevet 19. oktober 2008 Forfatter Del Skrevet 19. oktober 2008 Ett spørsmål til: Jeg har, som dere kan se i koden jeg postet ovenfor, en float som heter fps. Jeg har en funksjon i en annen klasse for å vise tekst, og jeg hadde tenkt å vise hvor mye FPS programmet skjører med. Men til dette trenger jeg å konvertere fps variabelen til en char*. Noen som vet om en måte å gjøre dette på? Miromurr Lenke til kommentar
zotbar1234 Skrevet 19. oktober 2008 Del Skrevet 19. oktober 2008 Jeg har en funksjon i en annen klasse for å vise tekst, og jeg hadde tenkt å vise hvor mye FPS programmet skjører med. Men til dette trenger jeg å konvertere fps variabelen til en char*. Noen som vet om en måte å gjøre dette på? Hvis du trenger kun å vise frem FPS-verdi, hvorfor trenger du å konvertere en float til en char*? Men hvis du absolutt insisterer, ta en titt på stringstreams. Lenke til kommentar
Miromurr Skrevet 19. oktober 2008 Forfatter Del Skrevet 19. oktober 2008 (endret) Må konvertere den fordi jeg trenger en char* for at funksjonen skal funke. Altså er funksjonen noe slikt: void RenderText(int xPos, int yPos, char* string); // en forenklet versjon... 'string' er en char*, altså den variabelen som lagrer den teksten jeg skal vise... Endret 19. oktober 2008 av Miromurr Lenke til kommentar
zotbar1234 Skrevet 19. oktober 2008 Del Skrevet 19. oktober 2008 Må konvertere den fordi jeg trenger en char* for at funksjonen skal funke. Altså er funksjonen noe slikt: void RenderText(int xPos, int yPos, char* string); // en forenklet versjon... I så fall er det nesten lettere med en va_arg-funksjon som gjenspeiler oppførselen til eksempelvis printf(). Nettopp for å slippe å tenke på hvordan du gjør denne konverteringen. Det til side, stringstreams eller snprintf(). va_arg- (evt. template)-løsning er dog klart å foretrekke. Lenke til kommentar
Miromurr Skrevet 19. oktober 2008 Forfatter Del Skrevet 19. oktober 2008 Takk, skal se på det! Miromurr Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå