WinAPI-Funktion deklarieren?



  • Hallo alle miteinander,

    wie kann ich in C++, in diesem Falle VC++, eine WinAPI-Funktion deklarieren. Bitte anhand der Sleep()-Funktion. Vermutlich ist diese Frage so einfach, dass die meisten mit dem Kopf schütteln, aber leider bekam ich es bisher nicht hin. Auf einen Verweis im Forum wäre ich ebf. dankbar, denn ich fand nichts.

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/sleep.asp

    void __stdcall Sleep(DWORD dwMilliseconds);
    

    Leider meldet mir meine Visual C++ Umgebung Fehler.

    Tipp: Es handelt sich nicht um eine Win32-Anwendung, sondern ein Konsolenprogramm und dazu brauche ich einige WinAPI-Funktionen, daher die Deklaration.



  • Wieso möchtest Du sie denn deklarieren? Sie ist schon geklariert. Sleep() ist eine Funktion, die Du verwenden kannst, ohne Sie vorher zu deklarieren.

    int main(void) { Sleep(5000); return 0; } // Konsolenprogramm wartet 5 Sekunden.
    

    ... oder habe ich Dich falsch verstanden?



  • #include <windows.h>
    

    Und wie durch ein Wunder ist Sleep deklariert. 😃



  • :>



  • Sicher, dass es schon vorher deklariert ist? Gut, auf diese Idee kam ich noch nicht, immerhin ist es ein Konsolenprogramm und diesem fand ich keine entsprechende Deklaration. 😮

    #include <stdio.h>
    
    int main(void) {
      Sleep(100);
      return 0;
    }
    

    Und das soll gehen? (Werde es nachher prüfen.)



  • Wie cd9000 schon sagt, Du musst einfach die windows.h einbinden, dann ist Sleep deklariert!

    // Die MSDN sagt:
    
    void Sleep(
      DWORD dwMilliseconds
    );
    
    // Client: Included in Windows XP, Windows 2000 Professional, Windows NT Workstation, Windows Me, Windows 98, and Windows 95.
    // Server: Included in Windows Server 2003, Windows 2000 Server, and Windows NT Server.
    // Header: Declared in Winbase.h; include Windows.h.
    // Library: Use Kernel32.lib.
    

    Demnach? Wie muss es sein?

    #include <windows.h> 
    
    int main(void)
    { 
       Sleep(100); // Wartet 0,1 Sekunden.
       return 0; 
    }
    


  • Ja, so ist es. Konsolenanwendugen sind haben auch vollen Zugrif auf das WinAPI es kann zum Beispiel auch Fenster mit einer Konsolenanwendugn erstellt werden, musst eben nur widnows.h einbinden

    Gruß, Maxi


Anmelden zum Antworten