MinGW (CodeBlocks 8.02) : sleep()

Persönliche Seite #871518
Lesenswert?

Benutze Sleep(millisekunden).
Das ist in windows.h enthalten. Du kannst dir ein

#define sleep(x) Sleep((x))

machen, wenn du die Source nicht grossflächig ändern willst,

Checke unbedingt die Argumente des sleep, ob es Sekunden (POSIX sleep) 
oder Millisekunden (Windows Sleep) sind. Ggf. brauchst du einen 
Korrekturfaktor:

#define sleep(x) Sleep((x)*1000)
Gast #871534
Lesenswert?

Hier die Fehlermeldung :

------------- Build: Debug in WriteBarcode ---------------

Compiling: main.cpp
J:\Barcode_Produktion\Barcode_Write\WriteBarcode\main.cpp: In function 
`int main(int, char**)':
J:\Barcode_Produktion\Barcode_Write\WriteBarcode\main.cpp:159: error: 
`sleep' was not declared in this scope
J:\Barcode_Produktion\Barcode_Write\WriteBarcode\main.cpp:159: warning: 
unused variable 'sleep'
Process terminated with status 1 (0 minutes, 1 seconds)
1 errors, 1 warnings



Mit <windows.h> und sleep(1000) (für 100ms). Bzgl. eine nicht 
funktionierenden sleep-Fkt in MinGW habe ich bereits unter Google schon 
etliche Hinweise gelesen. Doch nirgends stand etwas eindeutiges darüber 
dass es generell nicht geht.
#871557
Lesenswert?

Aufgrund der Fehlermeldungen würde ich mal sagen, dass da was 
Grundlegendes falsch ist "unused variable 'sleep'".
Achja und wie bereits gesagt wurde, die Funktion wird mit großem "S" 
geschrieben. Sofern die windows.h eingebunden ist sollte es klappen. Hab 
schon zig Anwendungen damit gemacht.
Ansonsten bitte deinen Quellcode posten.
Gast #871616
Lesenswert?

Ob mit s bzw. S wird beides nicht akzeptiert. Windows.h ist auch 
eingebunden. Ich werde nun einmal den Compiler-Wechseln (Borland 5.5). 
Wie schon zuvor gesagt, sind im Netz diverse Hinweise zu finden, dass 
die Sleep-Fkt u.U. mit dem MinGW nicht richtig bzw. gar nicht 
funktioniert.
Daher habe ich hier mal kurz angefragt ob schon jemand die Funktion mit 
MinGW benutzt hat und diesbzgl. seine Erfahrung gemacht hat.
Gast #871703
Lesenswert?

sleeptest.c
-----------
1
#include <windows.h>
2

3
int main (int argc, char**argv)
4
{ sleep (1000); printf("READY\n");
5
return 0;
6
}

Makefile:
---------
CFLAGS=-Wall

sltest: sltest.c
        gcc -o sltest sltest.c -lws2_32

Aktivierung:
------------
make
./sltest


Das tut es bei mir, nur mit dem Unterschied zu Unix,
dass die Zeitangabe als Millisekunden genommen wird.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren