Laufwerk zum öffnen definieren...



  • pennywise81 schrieb:

    Und wie könnt ich der Fkt beibringen, nicht das Standartlfwrk zu nehmen, sondern das, welches ich ihr sage?

    http://www.cpp-tutor.de/cpp/le06/le06_01.htm
    http://tutorial.schornboeck.net/arrays.htm
    oben rechts findest du noch viele andere tutorials

    pennywise81 schrieb:

    Dange. Wozu ist denn dieser Array gut? Reserviert der Speicher?

    link zur faq wurde schon gepostet
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-80618.html



  • Okay, ich hab das jetzt soweit verstanden. So sieht nun meine Source aus:

    #include <windows.h>
    // #include <stdafx.h>
    
    void laufwerksteurung(char *Laufwerk, int Status);
    
    int main() 
    {
        laufwerksteuerung("f:",1);        // öffnen
        Sleep(3000);                      // 3 Sekunden warten
        laufwerksteuerung("f:",0);        // schließen
    
        return 0;
    }
    
    void laufwerksteurung(char *Laufwerk, int Status)
    {
         // MCIString initialisieren
         char MCIString[500];             
    
         // 'Laufwerk' in 'MCIString' speichern
         wsprintf(MCIString,"open %s type cdaudio alias CDRom",Laufwerk);
         mciSendString(MCIString,Null,0,Null);
    
         if (Status>0)
         {
            mciSendString("set CDRom door open",Null,0,Null);
         }
         else
         {
            mciSendString("set CDRom door closed",Null,0,Null);
         } 
    
         return;
    }
    

    Allerdings bekomme ich einen Compilerfehler:

    8 C:\Dev-Cpp\Unbenannt1.cpp `laufwerksteuerung' undeclared (first use this function)
    

    Versteh allerdings nicht warum. Weiß jemand Rat?
    Zweite Frage: Was ist die stdafx.h und wofür brauch ich die? Brauch ich die überhaupt?

    Vielen vielen Dank bis hierhin...

    mfg
    Lars



  • rechtschreibung ⚠
    laufwerksteurung != laufwerksteuerung

    pennywise81 schrieb:

    Zweite Frage: Was ist die stdafx.h und wofür brauch ich die? Brauch ich die überhaupt?

    brauchst du nicht

    [edit]
    der nächste fehler wird das Null sein. entweder NULL oder 0
    und winmm nicht vergessen mitzulinken



  • Oh man bin ich Panne! War wohl ne Tasse Kaffee zu viel.

    Danke für's finden 😃



  • pennywise81 schrieb:

    War wohl ne Tasse Kaffee zu viel.

    geht sowas 😕 😃



  • 'dammich, zwei neue Fehler:

    [Linker error] undefined reference to `laufwerksteuerung(char*, int)'
    
    [Linker error] undefined reference to `mciSendStringA@16'
    

    Hab die winmm per

    -winmm
    

    in den Linkeroptionen vom Dev eingebunden. Falsch?



  • pennywise81 schrieb:

    'dammich, zwei neue Fehler:

    [Linker error] undefined reference to `laufwerksteuerung(char*, int)'
    

    dürfte eigentlich nicht sein, hast du funnktion in eine andere datei ausgelagert?

    pennywise81 schrieb:

    Hab die winmm per

    -winmm
    

    in den Linkeroptionen vom Dev eingebunden. Falsch?

    fast richtig. -lwinmm
    -l wie linken 😉



  • Nee, ist alles nur in diesem Quelltext. Hab ich vielleicht wieder irgendwas übersehen?
    (winmm hab ich jetzt richtig eingebunden, der mciSendString-Fehler ist wech.)

    #include <windows.h>
    
    void laufwerksteuerung(char *Laufwerk, int Status);
    
    int main() 
    {
        laufwerksteuerung("f:",1);        // öffnen
        Sleep(3000);                      // 3 Sekunden warten
        laufwerksteuerung("f:",0);        // schließen
    
        return 0;
    }
    
    void laufwerksteurung(char *Laufwerk, int Status)
    {
         // MCIString initialisieren
         char MCIString[500];             
    
         // 'Laufwerk' in 'MCIString' speichern
         wsprintf(MCIString,"open %s type cdaudio alias CDRom",Laufwerk);
         mciSendString(MCIString,NULL,0,NULL);
    
         if (Status>0)
         {
            mciSendString("set CDRom door open",NULL,0,NULL);
         }
         else
         {
            mciSendString("set CDRom door closed",NULL,0,NULL);
         } 
    
         return;
    }
    


  • rechtschreibung die zweite
    definition stimmt nicht mit implementierung überein

    void laufwerksteuerung(char *Laufwerk, int Status);
    void laufwerksteurung(char *Laufwerk, int Status) { //...
    


  • Echt, ich gehör erschossen! Danke Dir, es funktioniert jetzt...
    Der Vollständigkeit halber hier nochmal der komplette Quellcode:

    #include <windows.h>
    
    void laufwerksteuerung(char *Laufwerk, int Status);
    
    int main() 
    {
        laufwerksteuerung("f:",1);        // öffnen
        Sleep(3000);                      // 3 Sekunden warten
        laufwerksteuerung("f:",0);        // schließen
    
        return 0;
    }
    
    void laufwerksteuerung(char *Laufwerk, int Status)
    {
         // MCIString initialisieren
         char MCIString[500];             
    
         // 'Laufwerk' in 'MCIString' speichern
         wsprintf(MCIString,"open %s type cdaudio alias CDRom",Laufwerk);
         mciSendString(MCIString,NULL,0,NULL);
    
         if (Status>0)
         {
            mciSendString("set CDRom door open",NULL,0,NULL);
         }
         else
         {
            mciSendString("set CDRom door closed",NULL,0,NULL);
         } 
    
         return;
    }
    



Anmelden zum Antworten