Czy da się w jakiś sposób przerobić kod źródłowy a języku C znajdujący się poniżej tak aby dana bitmapa wyświetlała się od razu, chodzi mi szczególnie o to aby jej dana nazwa była umieszczona Od razu w kodzie a nie czebyło jej wpisywać po skompilowaniu programu.
Kod źródłowy:
#include <stdio.h>
#include <dos.h>
void introduce(void); // Wprowadzenie nazw plikow, opis programu.
void initgfxmode(int); // Inicjacja podanego trybu graficznego.
void loadBMP(char *); // Wyswietlanie obrazu z pliku BMP.
FILE *filein; // Pliki BMP wejsciowy i wyjsciowy.
char *patchin[30]; // Sciezki dostepu do w/w plikow.
main(void) {
introduce(); // Wprowadzenie, podanie nazw plikow.
initgfxmode(0X13); // Inicjacja trybu 13H [320x200x256].
loadBMP(patchin); // Wyswietlenie obrazu wejsciowego BMP.
getch();
initgfxmode(0X3); // Powrot do trybu 3H (tekstowego).
}
void introduce(void) {
scanf("%s",&patchin); // Sciezka do pliku BMP wejsciowego.
}
void initgfxmode(int mode) { // Inicjacja trybu graficznego 'mode'.
_AX = mode;
geninterrupt(0X10);
}
void loadBMP(char *patch) { // Wyswietla na ekranie obraz z pliku BMP.
int i, j;
unsigned char red, green, blue;
filein = fopen(patch, "rb"); // Otwarcie pliku "binarnego do czytania".
fseek(filein, 54, SEEK_SET); // Przeskok naglowka pliku BMP.
for (i=0; i<=255; i++) { // Odczytanie z pliku i ustawienie palety
blue = fgetc(filein); // kolorow wykorzystywanej przez obraz.
green = fgetc(filein); // Dokladny opis sposobu zapisu palety
red = fgetc(filein); // kolorow w pliku BMP znajduje sie w
fgetc(filein); // sprawozdaniu zalaczonym do programu.
outp(0X3C8, i);
outp(0X3C9, red / 4);
outp(0X3C9, green / 4);
outp(0X3C9, blue / 4);
}
for (j=199; j>=0; j--) // Wyswietlenie obrazu na ekranie
for (i=0; i<=319; i++)
poke(0XA000, j*320+i, fgetc(filein)); // Zapalenie punktu (i, j)
// kolorem pobranym z pliku.
}