16. december 2000 - 14:16Der er
5 kommentarer og 2 løsninger
Borland C++ Builder 3, dos.h, delay
Hej !
Jeg har et problem, jeg skal bruge delay(); funktionen til et konsolprogram jeg er ved at skrive, og jeg har fundet ud af at den skal ligge i dos.h...........
Hej! Måske er det absolut nødvendigt for dig at bruge delay() metoden -og så dur den ger ikke! -Ellers kan du bruge sleep(<Sek>) på hovedtråden ..men du skal bruge #include <dos.h> //sleep, clrscr mm.
Her er en simpel kode der skifter farve på text og pauser i ét sekd så man ka\' nå at se det:
for(i=0; i<30; i++) { cprintf(\"her er en streng\", en); cout << \" her via cout Der er INGEN baggrund!\"; cprintf(\"her er en 3 streng\", en); cout<<endl; textcolor(i); textbackground(i+1); sleep(1); } getchar();
Hvis C++ Builder \"forhindrer\" dig i at anvender bla. int86, er det fordi du har valgt en forkert type application. Når du kører i Win32 mode (altså så alm. Windows applikation) får du ikke \"lov\" til at fyre de gammelkendte interrupt funktioner osv. afsted - der findes jo API-kald under WIN32 til dem alle - og så kan Windows stadig styre havd der sker. For at få lov at lave int86 (og andre gode \"gamle\" DOS ting, såsom absread) SKAL din applikation være en 16-bit applikation. Og den kan du kun lave med f.eks. Borland C 5.02 som følger med C++ Builder 4 PRO.
Men, men, men ... som du er inde på findes der en alternativ mulighed nemlig ASM direkte i koden. Du kan komme til de forskellige registre med _AX, _BX osv. husk blot at _AX altid røres i fbm. MOV osv., så initialiseringen af _AX registreret skal altid ske lige inden dit kald:
_AX = 013B; // Et eller andet interrupt ASM { int ax } res = _BX; // or whatever.
Jeg er ingen ørn i ASM, så syntaksen på d.o. er sikkert forkert - men ideen virker - jeg har selv anvendt den til at lave inport og outport som man heller ikke \"må\" lave i C++ Builder:
asm { mov dx, portAddr mov al, portData out dx, al };
hmm, jeg bruger 3.0´, men vælger at lave en console application.....
kender godt den alternative måde, og har også source til det, men ville nu hellere gøre det på den anden måde....... nå, pyt, points givet
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.