Kaksoispuskurointia...
// Kaksoispuskurointi. By naTech // Kääntäjänä käytetään djgpptä! // gcc -o esim.exe esim.c #include <GO32.h> #include <sys/farptr.h> #include <dos.h> #include <stdio.h> #include <conio.h> char *buf; int main() { buf=(char *)malloc(64000); // Alustetaan puskuri textmode(0x13); //Siirrytään grafiikkatilaan 320x200x8bit buf[100*320+160]=12; //tässä piirretään punainen piste kohtaan 160x100 _dosmemputl(buf, 64000/4, 0xA0000); //Flipataan puskuri näyttömuistiin getch(); //Odotetaan näppäintä textmode(0x3); //Siirrytään tekstitilaan }
Miksiköhän includet ei näy oikein?
Minun moka. olen tehnyt kaiken väärin. sinnehhän tulee alkuun se 3 kertomerkkiä!
Se johtuu siitä että tiedostonnimien ympärillä on < (<) ja > (>) mutta koodinlisäysskripti ei muuta niitä ja sellain luulee että ne ovat joku tagi.
Laitoit koodin vähän väärään paikkaan, mutta nyt pitäisi olla oikein.
Kato, ite naTech! terve.
Ton rivin buf=(char *)malloc(64000); jälkeen:
if(buf==NULL) { printf("\n Ei tarpeeksi muistia kaksoispuskurille!"); }
KOMMENTOINTIIN EI KÄSITTÄÄKSENI AINAKAAN DJGPP YMPÄRISTÖSSÄ KÄYTETÄ "kolmea kertomerkkiä!!!", vaan
/* */
Niin tai //
Hienoa, että pojilla piisaa puhtia, mutta tällaiset vinkit ovat lähes täydellisen hyödyttömiä. Tämä palvelee vain henkilöitä, jotka tietävät jo mitä kaksoispuskurointi on, mutteivät osaa tehdä sitä DJGPP:llä (niinkin funktioiden parametrit tulisi selittää paremmin).
Tai asian voisi selittää ei DJGPP ympäristölle
ONKO TÄMÄKIN KOPIOITU LAMERTUTISTA
aa: ei ole. tosin olen oppinut sieltä kaiken näköistä, voi johtua siitä. Eikä tuota kaksois puskurointia oikein muulla tavalla voi tehdäkkään, paitsi taulukon voi varata myös näin:
int buf[64000];
Joo, sillein se veisi tilaa paljo enemmän.
fatal error C1083: Cannot open include file: 'GO32.h': No such file or directory <-HÖH
Õ________õ
sain virheilmoituksen "Ohjelma on liian suuri muistiin"
Muisti tulee muuten myös vapauttaa (free).
Aihe on jo aika vanha, joten et voi enää vastata siihen.