Problem mit joyGetNumDevs();



  • Guten Tag

    Das ist mein erster Post hier und ich bin totaler Anfänger in Sachen C/C++.

    Wollte Joystickinformationen einlesen und möchte dazu joyGetNumDevs() benutzen.

    Habe mal ein Miniprogramm geschrieben, das die Funktion einfach nur benutzt (nicht sinnvoll, müsste aber trotzdem gehen, damit ich damit weiter machen kann):

    main.c

    #include <Windows.h>
    #include <stdio.h>
    
    int main(){
        JOYINFO joyinfo;
    
        if(joyGetNumDevs() == 0)
            printf("false\n");
        else
            printf("Hatgeklappt\n");
        return 1;
    }
    

    joyGetNumDevs() ist in Mmsystem.h und diese wiederum in Windows.h deklariert. Beide Header befinden sich in C:\MinGW\include

    Mein Komileraufruf lautet wie folgt:
    gcc -o main.exe main.c

    Dabei kommt folgender Fehler:
    "(Pfad auf Temp):hello.c: undefined reference to 'joyGetNumDevs@0'"

    Was muss ich in der Konsole eingeben, um die Funktion/die Header-Datei einbinden zu können?

    Danke schoneinmal

    Gruß Manfred



  • Du musst noch die entsprechende Library mitangeben.



  • Also habe nun in meinem Programm zusätzlich die #include <Mmsystem.h> mit eingebunden.

    Mein Aufruf:
    gcc -I"C:\MinGW\include" -L"C:\Programme\Microsoft Visual Studio 8\VC\PlatformSDK\Lib" -o main.exe main.c

    Habe auch schon die main.h geschrieben:

    extern UINT joyGetNumDevs();

    und es kommt der selbe Fehler. Was mache ich nur falsch?

    liegt es evtl an den Leerzeichen im Pfad?



  • Fährst du MinGW mit VC? Ich glaube nicht, dass die Library-Formate kompatibel sind.

    MfG SideWinder



  • Nein, mache ich eigentlich nicht. Da ist nur die einzige Winmm.lib auf meinem System...
    Gibt es die auch rein für den GCC?? Wenn ja, wo finde ich die

    Die nötige Header Dateien hatter er ja



  • Ich glaube, dass ich etwas gefunden habe. Auf der MinGW-Seite gibt es ein Packet, das win32api-3.9-src.tar.gz und win32api-3.9-tar.gz. In dem Source-Packt sind configure und Makefiles + die gesuchte winmm jedoch nicht als .lib sonder als .def wie auch die dazugehörigen .h Dateien.

    In dem anderen Ordner ist diese Datei als libwinmm.a drin. Da MinGW meines Wissens für Windows ist, denke ich, dass ich das alles unter Cygwin evtl übersetzen muss.

    Wenn dem so ist, wie stelle ich soetwas an??



  • Hat sich erledigt, war mein Fehler...

    Trotzdem vielen Dank, für die Antworten

    Gruß Manfred


Anmelden zum Antworten