[C++/WinAPI] Wczytywanie bitmapy z pliku (LoadImage).

0

Mam taki oto przykładowy kod:

HBITMAP hbmObraz;
hbmObraz = (HBITMAP)LoadImage(NULL, "c:\\sciezka\\plik.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);

Który niestety nie działa.. Nie wiem dlaczego.
Kompilator wywala coś takiego:

Compiling...
WinMain.cpp
.\WinMain.cpp(13) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
.\WinMain.cpp(13) : error C2040: 'hbmObraz' : 'int' differs in levels of indirection from 'HBITMAP'
.\WinMain.cpp(13) : error C2440: 'initializing' : cannot convert from 'HBITMAP' to 'int'
        There is no context in which this conversion is possible

Nie zabardzo wiem jak się do tego odnieść.

Kod pochodzi z tej strony http://darkcult.gamedev.pl/ Domyślam się że kurs jest trochę przeterminowany i stąd te efekty. Moje IDE to VC 2008.

Dopiero zaczynam zabawę z bitmapami. Gdyby ktoś coś wiedział, proszę o odpowiedź : >
Pzdr.

0

Kodzik wygląda dobrze. Najprawdopodobniej nie zaincludowałeś czegoś. HBITMAP jest nierozpoznawany?

0

Z tego co kompilator wywala w logu to jest rozpoznawalny.
Nic nie dołączałem, w tutorialu nic o tym nie było powiedziane ...

Link: http://darkcult.gamedev.pl/winapi.html

0

A windows.h dołączasz?

0

Tak dołączyłem x)
Przed <windows.h> jest jeszcze #define WIN32_LEAN_AND_MEAN ... Myślałem że to może przez to, ale po usunięciu tej linijki dalej jest to samo.

0

Daj cały kod bo nic ciekawego nie widzę...

0

Już raczej nie trzeba, problem rozwiązany : >

Sorki jeśli nazewnictwo nie takie jak trzeba:
Mianowicie uchwyt do bitmapy oraz jego inicjalizacja, która się pod nim znajdowała, były umieszczone w kodzie jako globalne. Gdy samą deklarację umieszczę globalnie, a inicjalizację w środku WinMain() to wszystko jest git.

Zauważyłem też że można wszystko umieścić poza funkcją WinMain, deklarując i inicjalizując uchwyt od razu. W ten sposób:

HBITMAP hbmObraz = (HBITMAP)LoadImage(NULL, "button_one.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);

Tylko teraz nie za bardzo wiem dlaczego w pierwszym przypadku nie działało.
Czemu nie można czegoś takiego (jak w pierwszym poście) umieścić globalnie, poza główną funkcją?
W sumie nie powinienem się tym już przejmować, ale z ciekawości warto się dowiedzieć.

0

Kod musi się znajdować w funkcji. Na najwyższym poziomie mogą znajdować się tylko deklaracje i definicje.

0

Ok, dzięki za pomoc, Deus : >

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