es kommt mir vor als liefen programme die ich von irgendwoher kopiere nienienie



  • also ich will ein programm schreiben das so interrupts aus c++ aus aufruft. hab ich also erstmal n thread hier gepostet und dann nach den antworten nach details gegoogelt und dieses beispielprog hier gefunden

    #include <dos.h>
       #include <stdio.h>
       #define MAXKEY 19
       #define BEEP printf("\007")
       void print(void);
       void biosprt(void);
       char buf[MAXKEY],*ptr;
       int colm = 30,i;
       union REGS r;
       main()
       {
            system("cls");
            printf("Enter a 20 character string\n\n");
            gets(buf);
            if(strlen(buf)  > 20)
                 printf("String to long, truncating\n");
            print();
            BEEP;
       }
       void print()
       {
            r.h.ah = 0x02;
            r.h.bh = 0;
            r.h.dh = 12;
            r.h.dl = colm;
            int86(0x10,&r,&r);
            for(ptr = buf,i = 0; i < = MAXKEY; (biosprt()),i++,ptr++);
       }
    
       void biosprt()
       {
            r.h.ah = 0x09;
            r.h.al = *ptr;
            r.x.cx = 1;
            r.h.bl = 0x0f;
            r.h.bh = 0;
            int86(0x10,&r,&r);
            r.h.ah = 0x02;
            r.h.bh = 0;
            r.h.dh = 12;
            r.h.dl = ++colm;
            int86(0x10,&r,&r);
       }
    

    und wie ich so bin hab ichs erstmal in den devcpp kopier um zu sehn ob die ganze sache läuft bevor ich versuche es zu verstehen. und was ist? prompt hab ich fehlermeldungen...

    irgendwie passiert mir das zu häufig wenn ich nach lösungen googele und die beispiele kompilieren wil.

    Compiler: Default compiler
    Führt g++.exe... aus
    g++.exe "C:\Dev-Cpp\Unbenannt1.cpp" -o "C:\Dev-Cpp\Unbenannt1.exe" -O3 -Os -fexpensive-optimizations -O3 -I"C:\Dev-Cpp\include\c++" -I"C:\Dev-Cpp\include\c++\mingw32" -I"C:\Dev-Cpp\include\c++\backward" -I"C:\Dev-Cpp\include" -I"C:\Dev-Cpp\include\dx8\Directx8 for DEV-C\Includes" -L"C:\Dev-Cpp\lib"
    C:/Dev-Cpp/Unbenannt1.cpp:9: aggregate `REGS r' has incomplete type and cannot
    be defined

    C:/Dev-Cpp/Unbenannt1.cpp: In function int main()': C:/Dev-Cpp/Unbenannt1.cpp:12:system' undeclared (first use this function)

    C:/Dev-Cpp/Unbenannt1.cpp:12: (Each undeclared identifier is reported only once
    for each function it appears in.)

    C:/Dev-Cpp/Unbenannt1.cpp:15: `strlen' undeclared (first use this function)

    C:/Dev-Cpp/Unbenannt1.cpp: In function void print()': C:/Dev-Cpp/Unbenannt1.cpp:26:int86' undeclared (first use this function)

    C:/Dev-Cpp/Unbenannt1.cpp:27: parse error before `=' token

    C:/Dev-Cpp/Unbenannt1.cpp: At global scope:
    C:/Dev-Cpp/Unbenannt1.cpp:9: storage size of `r' isn't known

    Ausführung beendet

    und von hier hab ichs http://www.clipx.net/ng/zc_ref/ng370fc.php



    1. Copy&Paste weniger, und code selber. das löst dein problem, das du im topic beschrieben hast.
      2)die dos.h wurde beschnitten und kann heutzutage unter windows nicht mehr interrupts aufrufen. das kannst du nur im real-dos mode und mit nem alten dos header, wo die definition von REGS drin ist. abgesehen davon ist es nicht c++ stil, union REGS r; zu schreiben, sonder nur REGS r;
      Das passiert eben wenn man nur kopiert. 🙄
      Also vergiss die interrupts, die gibts in win nicht mehr.


  • stimmt, aber dir fehlen evtl. noch header:
    stdlib.h oder cstdlib
    string.h oder cstring



  • wenn du schon runter willst auf dosebene, warum dann nicht einfach mal ein gescheiter compiler?
    der djgpp nimmt den code sicher 😉 ebenso ein alter turbo c.

    schau mal ins konsolenfaq, da gibt es ein mausprogramm (von zwei), von mir gepostet für real dos. da kannst du noch mit regs arbeiten.

    hier steht ein schöner 3 86, der hat dos drauf. zum testen.

    oder emulier dir das mit dem djgpp, da kommst du sogar mit windows weiter 😉

    ps: und poste endlich mal im dos / win32 forum.
    das ist kein c++, und auch kein standard 😉



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Außerdem kann man sich mal auch etwas bemühen die Fehler selbst zu lösen, der erste ist ja wohl klar zu beheben in dem du die <cstdlib> includierst, etc.

    MfG SideWinder


Anmelden zum Antworten