GetTickCount64



  • Hi,

    ich habe zur Zeit das Problem GetTickCount64 nicht nutzen zu können.
    Der Compiler meint: 'GetTickCount64' was not declared in this scope
    Allerdings nutze ich #include <windows.h>
    Sachen wie QueryPerformanceFrequency akzeptiert er ebenfalls.
    Hat wer ne Idee, was ich übersehe?



  • msdn, GetTickCount64 Function schrieb:

    To compile an application that uses this function, define _WIN32_WINNT as 0x0600 or later. For more information, see Using the Windows Headers.



  • Sadly that doesn't help.
    - Was already definded 😞



  • Ahh, f***ing MinGW, it defined my winversion as 0x0400.
    Question resolved, thank you.



  • Was für ein System hast du denn - laut MSDN gibt es die Funktion erst ab Windows Vista.

    PS: Wenn _WIN32_WINNT schon definiert ist, solltest du mal gegenprüfen mit welchem Wert - und zur Not hilft auf #undef



  • Ok, so wie's ausschaut klappt es wohl doch noch nicht.
    Mein Betriebssystem ist Windows Vista.
    Das ganze hat noch funktioniert, als es ein Projekt in Visual-Studio war.
    Ich wollte nun jedoch einmal Netbeans ausprobieren, aber das will wohl nicht.

    Ich hab das ganze jetzt mal auf den kleinstmöglichen Fehler runtergehauen, wenn ich das define:

    #define _WIN32_WINNT 0x0600;
    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    
    int main(int argc, char** argv) {
        std::cout << _WIN32_WINNT<<"\n";
        return 0;
    }
    

    Das ganze ist ein brandneues netbeans-projekt.
    Es spuckt tausende dieser Fehler aus:
    include/winspool.h:17:6: error: token ";" is not valid in preprocessor expressions

    Der Fehler muss offensichtlich jedoch ein anderer sein, da ist weit und breit kein Semikolon in der Nähe.



  • Mathews schrieb:

    Der Fehler muss offensichtlich jedoch ein anderer sein, da ist weit und breit kein Semikolon in der Nähe.

    Doch, ist es - am Ende der ersten Zeile deines Quelltexts. (Präprozessor-Direktiven werden im Gegensatz von C/C++ Anweisungen nicht durch Semikolon abgeschlossen, sondern durch das Zeilenende)



  • Oh Mist, hatte ich glatt übersehen^^
    Nuja, der minimale Fehlerquelltext ist jetzt:

    #define _WIN32_WINNT 0x0600
    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    
    int main(int argc, char** argv) {
        GetTickCount64();
        std::cout << _WIN32_WINNT<<"\n";
        return 0;
    }
    

    Mit der Ausgabe 'GetTickCount64' was not declared in this scope



  • MinGW verwendet nicht das offizielle Windows SDK. Vielleicht ist da GetTickCount64 einfach noch nicht mit dabei.


Log in to reply