Gå til innhold

Anbefalte innlegg

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;
}

Lenke til kommentar
Videoannonse
Annonse

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 av søppel
Lenke til kommentar

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.

Lenke til kommentar

Ø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 ... :p

Endret av søppel
Lenke til kommentar
Tusen takk

Finnes 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 av kjetil7
Lenke til kommentar

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 av søppel
Lenke til kommentar

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.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...