Steinbitglis Skrevet 2. april 2004 Skrevet 2. april 2004 Hvordan får jeg et dos-program til å kjøre uten å bruke all maskinkraften f.eks få et program til å vente i 1 minutt ved hjelp av ctime dette vil bli veldig tungt #include <ctime> #include <iostream> using namespace std; int main() { time_t tid1,tid2; time( &tid1 ); time( &tid2 ); while (difftime (tid2,tid1) < 60) { time( &tid2 ); } cout << "60 sekunder er gått"; return 0; }
kjetil7 Skrevet 2. april 2004 Skrevet 2. april 2004 Bruk Sleep() funksjonen (går ut fra at du bruker Win32). Sleep Function
Steinbitglis Skrevet 2. april 2004 Forfatter Skrevet 2. april 2004 Tusen takk Finnes det noen grunn for at denne funksjonen krever stor forbokstav? Jeg trang ikke inkludere noe? funka uten i dev-cpp.
søppel Skrevet 2. april 2004 Skrevet 2. april 2004 (endret) Win32: http://msdn.microsoft.com/library/default..../base/sleep.asp VOID Sleep( DWORD dwMilliseconds ); Linux: man 3 sleep: #include <unistd.h> unsigned int sleep(unsigned int seconds); ...og det er 1000 millisekunder i ett sekund, så da kan vi si: #define sleep(T) Sleep(T * 1000) ..under Win32, da blir det likt under Win32 og Linux. Endret 3. april 2004 av søppel
☀ ❄ Skrevet 3. april 2004 Skrevet 3. april 2004 Si #define Sleep(T) sleep(T * 1000) under Linux, mener du. Eller enda bedre: #ifdef WIN32 #include <windows.h> // Eller hvor den nå enn er inline void sleep(int x) { Sleep(x*1000); } #else #include <unistd.h> #endif // WIN32 Funksjonen har forresten stor bokstav fordi det er Microsoft-kode vi snakker om.
søppel Skrevet 3. april 2004 Skrevet 3. april 2004 (endret) Øh .. under Win32 mente jeg .. heh..så da skulle det egentlig vært: #define sleep(T) Sleep(T * 1000) ..jeg er lat .. gidder ikke sjekke koden lenger. Edit: Under *nix .. hvis man så det fra "MS-perspektiv", måtte man i såfall delt på 1000. #define Sleep(T) sleep(T / 1000) Jeg gidder ikke sjekke nå heller .. så spark meg i hue hvis dette også er feil ... Endret 3. april 2004 av søppel
kjetil7 Skrevet 3. april 2004 Skrevet 3. april 2004 (endret) Tusen takkFinnes det noen grunn for at denne funksjonen krever stor forbokstav? Jeg trang ikke inkludere noe? funka uten i dev-cpp. Ikke noe annen grunn enn at alle andre funksjoner i Win32 API også har store forbokstaver. Sleep() ligger i "Winbase.h" headeren, som blir inkludert gjennom "Windows.h". Endret 3. april 2004 av kjetil7
Steinbitglis Skrevet 3. april 2004 Forfatter Skrevet 3. april 2004 Brukte Sleep() uten noen spesiell header, funka det sikker dumt spørsmål, men hva er win 32 api? hittil har jeg ikke brukt funksjoner med stor bokstav før
søppel Skrevet 3. april 2004 Skrevet 3. april 2004 (endret) API: Er det du programmerer "mot" i en gitt situasjon .. altså de funksjonene du har mulighet til å kalle. Har du en C++-kompiler som støtter standard C++, så har du C++'s standardbibliotek å programmere "mot", og dermmed kan dette biblioteket ansees å være et API. Siden du programmerer under Win32 har du også MS's biblioteker for C/C++-programmering, som blandt annet består av et sett funksjoner og muligheter kallt "Win32API", eller bare "Win32" .. MS har også laget andre bibiloteker/api'er som MFC, ATL .. o.s.v. Det finnes mange API'er/biblioteker .. 1000 - vis faktikst, f.eks.: - Win32 - OpenGL - DirectX - OpenAL - wxWidgets - GTK - KDE - QT - cgicc - Linux - POSIX - ++++++osv++++ Endret 3. april 2004 av søppel
☀ ❄ Skrevet 3. april 2004 Skrevet 3. april 2004 API står forresten for Application Programming Interface. Som altså betyr, som søppel sa, "de funksjonene du har mulighet til å kalle" -- pluss klasser som følger med, osv. Du kan tenke på f.eks. Win32 API som "ansiktet" til Windows -- Funksjoner og klasser du kaller for å "snakke med" Windows, pluss hjelpeklasser og funksjoner, slik som Sleep() i dette eksempelet.
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å