Dev-C++ erkennt Strukturen und Konstanten als Funktionen



  • Hallo,
    ich fange gerade mit C++ an und bin auch gleich auf ein paar Probleme gestoßen. Wie es scheint liegt der Fehler aber weniger im Code als vielmehr an meiner Entwicklungsumgebung (Dev-C++). Zum Problem:

    Ich wollte ein kleines Programm schreiben mit dem ich Tastatur/Maus Input simulieren kann. Hab dazu auf MSDN auch genügend Informationen gefunden. Vereinfacht sieht mein Programm so aus:

    #include <cstdlib>
    #include <iostream>
    #include "windef.h"
    #include "windows.h"
    #include "winuser.h"
    #include "wingdi.h"
    
    using namespace std;
    
    int main(void)
    {
        INPUT inputarray[2];    
        MOUSEINPUT mousein;    
        inputarray[0].type=INPUT_MOUSE;
        return EXIT_SUCCESS;
    }
    

    Dabei werden die beiden Strukturen "INPUT" und "MOSUEINPUT" benötigt. Die entsprechenden Headerdateien habe ich aber alle eingebunden. Hab mich sogar in den Files nochmal erkundigt ob die Struktur wirklich drin steht, alles ordnungsgemäß drin.

    Wenn ich nun dieses Programm compilieren und es anschließend ausführen will bekomme ich folgende Fehlermeldungen:

    INPUT' undeclared (first use this function)MOUSEINPUT' undeclared (first use this function)
    `INPUT_MOUSE' undeclared (first use this function)

    Wieso erkennt meine IDE diese Strukturen/Konstaten nicht? Übrigens, dieses Phänomen tritt nicht bei allen Strukturen auf, die POINT Struktur z.B. wird ordnungsgemäß erkannt und ich kann mit ihr auch arbeiten.

    Ich hoffe einer von euch weiß Rat

    Mfg

    Felsen



  • Im MSVC++ 2008 Express wird dies hier

    // MouseInput.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
    //
    
    #include "stdafx.h"
    
    #include <cstdlib>
    #include <iostream>
    #include <limits>
    #define NOMINMAX
    #include "windows.h"
    
    using namespace std;
    
    void wait()
    {
     std::cin.clear();
     std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
     std::cin.get();
    }
    
    int main()
    {
        INPUT inputarray[2];
        MOUSEINPUT mousein;
        inputarray[0].type = INPUT_MOUSE;
    	cout << inputarray[0].type << endl;
    	wait();
    }
    

    problemlos übersetzt.



  • Dev C++ ist veraltet und wird nicht mehr weiterentwickelt.
    Deswegen hat es warscheinlich auch einen veralteten Compiler.
    Nimm lieber Code::Blocks oder eben VS 2008.


Anmelden zum Antworten