MOUSE_INPUT undeclared



  • Vermutlich hat DevC++ noch ein alter PSDK und somit kennt es diese Typen noch nicht...



  • Die aktuellen Header für MinGW gibt es hier: http://prdownloads.sourceforge.net/mingw/w32api-3.6.tar.gz?download

    winuser.h included man ausserdem nicht. ⚠



  • Vermutlich hat DevC++ noch ein alter PSDK und somit kennt es diese Typen noch nicht...

    ich hab das psdk gdownloaded und das includeverzeichnis kopiert, aber .... es geht immer noch nicht ( jetzt grieg ich sogar noch mehr fehlermeldungen als vorher XD), außerdem noch derartige warnungen:

    C:/Dev-Cpp/include/windef.h:52:1: warning: "MAX_PATH" redefined
    C:/Dev-Cpp/include/stdlib.h:46:1: warning: this is the location of the previous definition
    In file included from C:/Dev-Cpp/include/windef.h:166,
                     from C:/Dev-Cpp/include/excpt.h:20,
                     from C:/Dev-Cpp/include/windows.h:157,
    C:/Dev-Cpp/include/winnt.h:237:1: warning: "_cdecl" redefined
    <built-in>:83:1: warning: this is the location of the previous definition
    C:/Dev-Cpp/include/winnt.h:674:2: #error Must define a target architecture.
    In file included from C:/Dev-Cpp/include/msxml.h:274,
                     from C:/Dev-Cpp/include/urlmon.h:254,
                     from C:/Dev-Cpp/include/objbase.h:951,
                     from C:/Dev-Cpp/include/ole2.h:69,
                     from C:/Dev-Cpp/include/windows.h:207,
    C:/Dev-Cpp/include/oaidl.h:442:1: pasting "/" and "/" does not give a valid preprocessing token
    In file included from C:/Dev-Cpp/include/msxml.h:274,
                     from C:/Dev-Cpp/include/urlmon.h:254,
                     from C:/Dev-Cpp/include/objbase.h:951,
                     from C:/Dev-Cpp/include/ole2.h:69,
                     from C:/Dev-Cpp/include/windows.h:207,
    C:/Dev-Cpp/include/oaidl.h:442: error: expected unqualified-id before '/' token
    C:/Dev-Cpp/include/oaidl.h:457:1: pasting "/" and "/" does not give a valid preprocessing token
    .
    .
    .
    

    Die aktuellen Header für MinGW gibt es hier: http://prdownloads.sourceforge.net/mingw/w32api-3.6.tar.gz?download

    ich kann das format nicht entpacken 😞 , braucht man dazu ein spezielles programm (habs mit WinRAR und Winace probiert)

    winuser.h included man ausserdem nicht.

    sicher?? ich hab schon ein paar programme gesehen, bei denen winuser.h included wurde.
    wie bindet man das sonst ein?



  • Drop schrieb:

    winuser.h included man ausserdem nicht.

    sicher?? ich hab schon ein paar programme gesehen, bei denen winuser.h included wurde.
    wie bindet man das sonst ein?

    Das wird von windows.h erledigt - deswegen heißt es in der MSDN-Library auch immer "Declared in Winuser.h, include Windows.h"



  • Das Platform SDK funktioniert eigentlich nur mit Visual C++.

    Um das oben verlinkte Paket zu entpacken kannst du z.B. 7zip nehmen.



  • Soll ich Dich in das Compiler-Forum verschieben? da Dein Problem nicht direkt was mit der WinAPI zu tun hat... sondern Compiler spezifisch ist...



  • Das Platform SDK funktioniert eigentlich nur mit Visual C++.

    ja ^^ is mir im nachhinein auch eingefallen (hab´s schonwieder rückgängig gemacht)

    Um das oben verlinkte Paket zu entpacken kannst du z.B. 7zip nehmen.

    das entpacken klappt jetzt, aber ich bekomm immernoch die gleichen fehlermeldungen

    Soll ich Dich in das Compiler-Forum verschieben? da Dein Problem nicht direkt was mit der WinAPI zu tun hat... sondern Compiler spezifisch ist...

    ... ja wär vielleicht besser

    Das wird von windows.h erledigt - deswegen heißt es in der MSDN-Library auch immer "Declared in Winuser.h, include Windows.h"

    danke, wieder was gelernt 🙂



  • Habs mir mal angeschaut.

    #if (_WIN32_WINNT < 0x0403)
    UINT WINAPI SendInput(UINT,LPINPUT,int);
    #endif
    

    Jetzt kann Jochen Kalmbach dir sagen wie es richtig geht.



  • ...mir leuchtet die Bedingung nämlich nicht ein. Meiner Meinung müsste _WIN32_WINNT > als 0x0403 sein.



  • In meiner winuser.h (ist glaub' nicht die aktuellste Version) heißt es noch:

    #if (_WIN32_WINNT > 0x0400)
    

    Du müsstest also nur vor dem einbinden von windows.h _WIN32_WINNT über ein #define auf einen größeren Wert als 0x0400 bzw. 0x0403 setzen



  • so richtig ?:

    #define _WIN32_WINNT 0x0404
    

    .... jedenfalls funktioniert es nicht, wenn ich _WIN32_WINNT auf einen wert <0x0402 setze bekomme ich die selben fehlermeldungen wie vorher, aber wenn ich einen größeren wert setze kommen diese hier:

    error: redefinition of `struct tagMOUSEINPUT'
    /winuser.h:3109: error: previous definition of `struct tagMOUSEINPUT'
    error: ISO C++ forbids declaration of `MOUSEINPUT' with no type
    error: conflicting declaration 'typedef int MOUSEINPUT'
    /winuser.h:3116: error: 'MOUSEINPUT' has a previous declaration as `typedef struct tagMOUSEINPUT MOUSEINPUT'
    error: declaration of `typedef int MOUSEINPUT'
    


  • Du bindest jetzt aber winuser.h nicht mehr direkt ein, oder? Und das define hast du oberhalb von "#include <windows.h>" stehen?!



  • omg ich glaub ich hab das problem gelöst ^^, DANKE DANKE DANKE für eure hilfe


Anmelden zum Antworten