Czytanie/kopiowanie do pliku

Odpowiedz Nowy wątek
2015-01-29 04:30
0

Witam!
Staram się zrobić program, który tworzy plik o rozszerzeniu bmp i skopiuje do niego zawartość już istniejącego. Niestety, nie mogę wczytać całej zawartości, bo już przy pierwszym "fwrite", wyrzuca mi błąd. Nie wiem w ogóle, czy ten kod ma odpowiedni kształt, ale zrobiłem to analogicznie do fread'a (gdy czytałem informacje z obrazka).
Mógłby ktoś rzucić okiem co może być nie tak? :)
Może chodzi o to, że trzeba zrobić jakieś miejsce w tym pliku na te dane (z FileHeader i InfoHeader)? Nie mogę nic na ten temat znaleźć.

FILE *picture = fopen("ObrazWPliku.bmp", "wb");
if (picture!=NULL)
        {
            //FileHeader
            fwrite(&odczytywanie.Bitmapa, 2, 1, picture);
            fwrite(&odczytywanie.rozmiar, 4, 1, picture);
            fwrite(&odczytywanie.reserved1, 4, 1, picture);
            fwrite(&odczytywanie.reserved2, 4, 1, picture);

            // InfoHeader

            fwrite(&odczytywanie.reserved3, 4, 1, picture);
            fwrite(&odczytywanie.szerokosc, 4, 1, picture);
            fwrite(&odczytywanie.wysokosc, 4, 1, picture);
            fwrite(&odczytywanie.planes, 2, 1, picture);
            fwrite(&odczytywanie.BitCount, 2, 1, picture);
            fwrite(&odczytywanie.Compresion, 4, 1, picture);
            fwrite(&odczytywanie.ImageSize, 4, 1, picture);
            fwrite(&odczytywanie.XPixel, 4, 1, picture);
            fwrite(&odczytywanie.YPixel, 4, 1, picture);
            fwrite(&odczytywanie.ColorsUsed, 4, 1, picture);
            fwrite(&odczytywanie.ColorsImportant, 4, 1, picture);

            for (i = 0; i < odczytywanie.wysokosc[0]; i++)
            {
                for (j = 0; j < odczytywanie.szerokosc[0]; j++)
                {
                    fwrite(&colors[i][j].blue, 1, 1, picture);
                    fwrite(&colors[i][j].green, 1, 1, picture);
                    fwrite(&colors[i][j].red, 1, 1, picture);
                }
            }

        }
edytowany 1x, ostatnio: lucca_bu, 2015-01-29 11:34

Pozostało 580 znaków

2015-01-29 09:55
0

jaki blad?
co to jest odczytywanie i czemu raz jest wartosc ze wskaznika a pozniej adres wskaznika?
uzywales debuggera?

Pozostało 580 znaków

2015-01-29 11:43
0
fasadin napisał(a):

jaki blad?
co to jest odczytywanie i czemu raz jest wartosc ze wskaznika a pozniej adres wskaznika?
uzywales debuggera?

A, przepraszam, mój błąd z tym wskaźnikiem na adres, ale to nic nie zmienia. Już edytowałem. Odczytywanie to struktura z informacjami z odczytanego wcześniej pliku bmp. Debuggera użyłem, błąd wyskakuje dopiero przy "wejściu" w konkretną linijkę kodu z "fwrite" (ustawiam tam flagę) i po przejściu wyskakuje okienko: "nazwapliku.exe has triggered a breakpoint". W liście błędów nie widzi problemów, dlatego nie wiem o co mu może chodzić.

Pozostało 580 znaków

2015-01-29 15:24
0

UP! Stanąłem przez to w miejscu. Wie ktoś o co może chodzić? Miał ktoś kiedyś podobny problem?

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0