LPT ansteuerung in C



  • Hallo leute

    ich versuche mittels dem Giveio Treiber den Drucker port anzustuern und hab folgendes Problem

    int giveio(void)
    {
    OSVERSIONINFO osvi;
    int ret = 1;

    osvi.dwOSVersionInfoSize = sizeof osvi;
    GetVersionEx(&osvi);
    if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)
    {
    HANDLE h;
    h = CreateFileA("\\\.\\giveio", GENERIC_READ, 0, NULL,
    OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if (h == INVALID_HANDLE_VALUE)
    ret = 0;
    else
    CloseHandle(h);
    }
    return ret;
    }

    giveio();
    int a;
    for (a=0;a<255;a++)// geht net???// _outp(LPT1,zb.7)geht
    _outp(LPT1,a)// geht net ??? //

    return 0;

    }

    aber wenn ich jetzt das Programm laufen lass geht es nur wenn ich 1 wert eingebe
    wie zum BSP :_outp(LPT1,7);

    wenn ich es mit ner Forschleife (lauflicht) mache kommt immer der fehler
    Syntaxfehler:Es fehlt ';'vor 'Typ'
    'a':nichtdeklarierter Bezeichner

    ich rasste aus was will den der Compiler noch ich seh kein logischen
    fehler??????? HHEEEEEEEEEEEEELLLLPPPPP



  • {
    int a;
    giveio(); 
    
    for..()
    
    ...
    }
    

    verwenden, also int a; und giveio(); tauschen.



  • int giveio(void) 
    { 
     OSVERSIONINFO osvi; 
     int ret = 1; 
    
     osvi.dwOSVersionInfoSize = sizeof osvi; 
     GetVersionEx(&osvi); 
     if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) { 
       HANDLE h; 
       h = CreateFileA("\\\\.\\giveio", GENERIC_READ, 0, NULL, 
       OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); 
       if (h == INVALID_HANDLE_VALUE) 
          ret = 0; 
       else 
          CloseHandle(h); 
     } 
     return ret; 
    } 
    
    giveio(); 
    int a; 
    for (a=0;a<255;a++)// geht net???// _outp(LPT1,zb.7)geht 
    _outp(LPT1,a)// geht net ??? // 
    
    return 0; 
    
    }
    

    so das ganze mal etwas leserlicher gemacht...

    womit ich bei dem code überhaupt nicht klarkomme:

    da enden 3 } obwohl nur 2 { da sind

    kannst du vielleicht alles vollständig posten wo es nicht geht??



  • mein hirn ist heute auch schon gaga

    giveio(); 
    int a; 
    for (a=0;a<255;a++)
    _outp(LPT1,a)
    

    so mal die kommentare entfernt....

    eventuell sollte nach _outp() ein ; gesetzt werden?

    außerdem werden variablen immer beginn eines blocks deklariert und nicht mitten drin... wir programmieren hier nicht java sondern c *gg*



  • ja das war die lösung dekleration im oberen Teil!!!
    Danke leute 😉


Anmelden zum Antworten