hbitmap się nie wczytuje

hbitmap się nie wczytuje
NI
  • Rejestracja:około 11 lat
  • Ostatnio:około 5 lat
  • Lokalizacja:Warszawa
  • Postów:535
0

Mam taki głupi problem. Wczytuję bitmapę hBitmap funkcją loadimage i za każdym razem bitmapa się nie wczytuje tylko dlaczego? GetLastError() zwraca 0.

Kopiuj
hBitmap bitmap
bitmap=(HBITMAP)LoadImage(NULL,"image.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
cout << GetLastError() << endl;
if (bitmap==NULL)
{
     cout << "bitmap not loaded" << endl;
}

po wykonaniu tej funkcji na ekranie pojawiają się 2 linijki:
0
bitmap not loaded


Programuje i programuje ,przychodzi człowiek "o niższej inteligencji" i rok pracy zmarnowany
edytowany 1x, ostatnio: Niikelion
06
  • Rejestracja:prawie 20 lat
  • Ostatnio:około rok
  • Postów:2440
0

Daj pełną ścieżkę do pliku.

NI
  • Rejestracja:około 11 lat
  • Ostatnio:około 5 lat
  • Lokalizacja:Warszawa
  • Postów:535
0

no dałem i pisze w ostrzeżeniach że nie ma czegoś takiego jak \g i takie podobne... i nadal nie działa pokazuje dokładnie to samo w konsoli


Programuje i programuje ,przychodzi człowiek "o niższej inteligencji" i rok pracy zmarnowany
06
  • Rejestracja:prawie 20 lat
  • Ostatnio:około rok
  • Postów:2440
0

\ to znak specjalny, w literałach musisz go powtórzyć, żeby był traktowany jako zwykły znak, czyli: C:\\folder\\plik.ext.

NI
  • Rejestracja:około 11 lat
  • Ostatnio:około 5 lat
  • Lokalizacja:Warszawa
  • Postów:535
0

tą opcję też przerobiłem i efekt nadal ten sam


Programuje i programuje ,przychodzi człowiek "o niższej inteligencji" i rok pracy zmarnowany
06
  • Rejestracja:prawie 20 lat
  • Ostatnio:około rok
  • Postów:2440
0

Pokaż kod.

NI
  • Rejestracja:około 11 lat
  • Ostatnio:około 5 lat
  • Lokalizacja:Warszawa
  • Postów:535
0
Kopiuj
hBitmap bitmap
bitmap=(HBITMAP)LoadImage(NULL,"G:\\C++\\glass\\image.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
cout << GetLastError() << endl;
if (bitmap==NULL)
{
     cout << "bitmap not loaded" << endl;
} 

Programuje i programuje ,przychodzi człowiek "o niższej inteligencji" i rok pracy zmarnowany
06
  • Rejestracja:prawie 20 lat
  • Ostatnio:około rok
  • Postów:2440
0

Kod wygląda ok. Nie wiem, dlaczego nie ładuje bitmapy. Spróbuj jeszcze tak:

Kopiuj
bitmap = (HBITMAP)LoadImage(NULL, TEXT("G:\\C++\\glass\\image.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);

Choć nie spodziewam się, żeby to coś zmieniło (gdybyś dał literał złego typu, wyszłoby przy kompilacji).

NI
  • Rejestracja:około 11 lat
  • Ostatnio:około 5 lat
  • Lokalizacja:Warszawa
  • Postów:535
0

czy jest inny sposób na załadowanie bitmapy z pliku? chcę wyświetlić bitmapę na całe okno, ale nawet nie mogę jej załadować :(


Programuje i programuje ,przychodzi człowiek "o niższej inteligencji" i rok pracy zmarnowany
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:4 minuty
0

czy jest inny sposób na załadowanie bitmapy z pliku?
WIC (Windows Imaging Component) albo Gdi+. Obie biblioteki mają taką przewagę nad LoadImage, że obsługują różne formaty (png, jpg, także niestandardowe jeśli zainstalowano w systemie odpowiedni kodek).

cout << GetLastError() << endl;

Tak się nie robi.

Kopiuj
DWORD err = GetLastError();
cout << err << endl;
06
  • Rejestracja:prawie 20 lat
  • Ostatnio:około rok
  • Postów:2440
0

czy jest inny sposób na załadowanie bitmapy z pliku?

Szukanie innego sposobu jest o tyle bez sensu, że LoadImage powinno Ci załadować zwykła bitmapę bez problemu. Jeśli tego nie robi, to może z samą bitmapą jest coś nie tak? Sprawdzałeś z inną?

Azarien napisał(a)

cout < GetLastError() < endl;

Tak się nie robi.

Kopiuj
DWORD err = GetLastError();
cout << err << endl;

Pojedyncze < to tylko w powiadomieniach mailowych są, bo na forum poprawnie jest.

mwl4
  • Rejestracja:około 12 lat
  • Ostatnio:25 dni
  • Lokalizacja:Wrocław
  • Postów:399
0

Możesz spróbować takich flag użyć: LR_CREATEDIBSECTION | LR_LOADFROMFILE


Asm/C/C++
edytowany 1x, ostatnio: mwl4
NI
  • Rejestracja:około 11 lat
  • Ostatnio:około 5 lat
  • Lokalizacja:Warszawa
  • Postów:535
0

nie, dalej nie ładuje sie... nie ogarniam tego błędu, bitmapę moge normalnie otworzyć za pomocą gimpa lub innego programu, nie zwraca błędu że plik nie istnieje


Programuje i programuje ,przychodzi człowiek "o niższej inteligencji" i rok pracy zmarnowany
KA
  • Rejestracja:prawie 20 lat
  • Ostatnio:minuta
  • Lokalizacja:Gorlice
0
Niikelion napisał(a):
Kopiuj
hBitmap bitmap
bitmap=(HBITMAP)LoadImage(NULL,"image.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
cout << GetLastError() << endl;
if (bitmap==NULL)
{
     cout << "bitmap not loaded" << endl;
}

A pod czym Ty to kompilujesz, bo tam nie ma średnika po deklaracji zmiennej bitmap VS sobie na takie coś nie pozwoli ale może jakiś kompilator to jakoś dziwnie interpretuje... no chyba że zapomniałeś na forum wstawić? Poza tym kod jest poprawny i powinien ładować bitmapę jeżeli nie jest uszkodzona i jeżeli jest bitmapą a nie grafiką w innym formacie a tylko ze zmienionym rozszerzeniem na BMP zrób zresztą test na innym obrazku zrobionym choćby w Paincie.


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.