Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » timer();

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
11.09.2004, 22:57 Uhr
~Canon
Gast


Hi!
Mich würde interessieren, ob es für die folgende Funktion (von mir Verfasst )
auch eine genauere version gibt. Also auf Millisekunden.
Das hier ist die Funktion:

C++:
void timer (int sek)
{
   int  Uptime   = GetTickCount() / 1000 ;
   int _Sekunden = Uptime-Uptime  / 60*60;
   {

  while(true)
  {
    int Uptime   = GetTickCount() / 1000 ;
    int Sekunden = Uptime-Uptime  / 60*60;
    
    //weitere Elemente einfügen

    if(_Sekunden==Sekunden-sek)
    {
        goto ende;
    }
        }
    ende:
    //cin.get();
    ;
    }
}


die schlauen unter euch können mir bestimmt helfen!

MfG
Canon
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.09.2004, 13:37 Uhr
Spacelord
Hoffnungsloser Fall


Welche Windowsversion hast du?
Das hier funktioniert unter 2000prof und XP.

Ist relativ genau...

C++:
#define _WIN32_WINNT  0x0500

#include <windows.h>
#include <iostream>
using namespace std;

VOID CALLBACK TimerFunc(PVOID lpParam, BOOL TimerOrWaitFired)
{
    cout<<"Timerfunktion gestartet:\t "<< GetTickCount()<<endl;
    HANDLE hEvent = OpenEvent(NULL,TRUE,"DUMMY");
    SetEvent(hEvent);
}


int main()
{
    HANDLE hTimerQ=NULL;
    HANDLE hTimer =NULL;
    HANDLE event = CreateEvent(NULL,FALSE,FALSE,"Dummy");
    if(event)
    {
        hTimerQ= CreateTimerQueue();
        if(hTimerQ)
            CreateTimerQueueTimer(&hTimer, hTimerQ,(WAITORTIMERCALLBACK)TimerFunc, 0, 5000, 500, WT_EXECUTEINIOTHREAD);
        cout<<"Timer gestartet: \t\t"<<GetTickCount()<<endl;
    }

    WaitForSingleObject(event,INFINITE);

    return 0;
}



Das erste mal wird die Callbackfunktion nach 5000 Millisekunden aufgerufen und anschliessend alle 500 Millisekunden.
Der Timer läuft in seinem eigenen Thread und bremst somit nicht deinen "Hauptthread" aus.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.

Dieser Post wurde am 12.09.2004 um 13:49 Uhr von Spacelord editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.09.2004, 16:47 Uhr
~Canon
Gast


Mmmh,
danke erstmal!
aber da müssen noch irgentwelche Fehler drin sein. Mein Debugger sagt nämlich:

Code:

: error C2065: 'CreateTimerQueue' : undeclared identifier
: error C2440: '=' : cannot convert from 'int' to 'void *'
        Conversion from integral type to pointer type requires reinterpret_cast,
        C-style cast   or function-style cast
: error C2065: 'CreateTimerQueueTimer' : undeclared identifier
: error C2065: 'WAITORTIMERCALLBACK' : undeclared identifier
: error C2146: syntax error : missing ')' before identifier 'TimerFunc'
: error C2059: syntax error : ')'
Error executing cl.exe.

cpp1.obj - 6 error(s), 0 warning(s)



Ich verwende WinXP Prof. und Microsoft C++ 6.0.
Weißt du woran das liegen könnte???

MfG
Canon
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.09.2004, 17:45 Uhr
Spacelord
Hoffnungsloser Fall


Hast du das aktuelle SDK?
Visual C++ 6.0 ist "ab Werk" gnadenlos veraltet!!

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.09.2004, 20:14 Uhr
~Canon
Gast


Jo, ich habs "ab Werk"!
Kann man das SDK denn irgentwo downloaden,
und wenn ja, wo?
Was ist das überhaupt?

Canon
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.09.2004, 20:35 Uhr
Spacelord
Hoffnungsloser Fall


Das SDK ist das SoftwareDevelopmentKit.
Im SDK werden die aktuellsten APIs des Betriebssystems zur Verfügung gestellt um Anwendungen für Windows zu entwickeln.
Enthalten sind Header,Librarys etc.
Halt das ganze Zeugs was bei VC++ auch bei ist nur halt aktuell und teilweise auch ganz neue Sachen(wie zum Beispiel CreateTimerQueue und co. )
Das kannst du bei Microsoft downloaden.
Ich hoffe halt nur für dich dass du DSL hast weil es doch schon nen guter Happen ist.
Unbedingt brauchst du "nur" das Core-SDK.Darin sind die Kernkomponenten.
Die anderen Pakete sind schmückendes Beiwerk dass man bei Bedarf runterladen kann....

Das ganze gibt es hier:
www.microsoft.com/msdownload/platformsdk/sdkupdate/

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.09.2004, 20:44 Uhr
~Canon
Gast



Brauch ich dann das Win XP SP2 SDK?
Ich hab das nämlich noch garnicht drauf (das SP2 ist gemeint).
Oder ist das egal?
Ich hab schommal versucht das SDK runterzuladen,
aber diese beschissene Windoof seite sagt:
Could not parse XML data: [ XML load failed ]
Kann man da was machen?

MfG
Canon
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
13.09.2004, 20:47 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Nö brauchst du nicht, wozu auch?

Also ich kanns ohne Probleme runterladen, welche Browser nimmst du denn?

Hier mal der direkte Link zur Downloadseite:
www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
13.09.2004, 20:49 Uhr
Spacelord
Hoffnungsloser Fall


Also da kann ich dir eigentlich nichts weiter zu sagen ausser dass es nicht mit dem SP2 zu tun haben kann weil das aktuelle SDK älter ist als SP2 .
Bei mir hat der letzte Download vernünftig funktioniert.
Willst du das SDK downloaden oder online installieren?

[EDIT]Hab gerade nochmal auf der Seite geguckt.Da gibt ja doch was neues.
Trotzdem wirst du erstmal nur das Core-SDK brauchen.Hab es gerade nochmal getestet und bei mir startet der Download einwandfrei! [/EDIT]

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.

Dieser Post wurde am 13.09.2004 um 20:54 Uhr von Spacelord editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
13.09.2004, 21:26 Uhr
Hans
Library Walker
(Operator)


Hi,
was das SP2 für XP angeht: da kauft man sich am besten für 3,- Euro die aktuelle c't. Da ist 'ne CD dabei, die das Service Pack 2 enthält.

Noch 'ne Frage über Timer: gibt es nicht inzwischen genaue HardwareTimer auf den Mainboards, die im Millisekundenbereich arbeiten? Oder ist man da immer noch auf Zusatzkarten angewiesen, wenn man es ganz genau will oder braucht?

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 13.09.2004 um 21:33 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: