Zaczałęm czytać kurs o OpenGL ze strony http://directx.w.interia.pl/ w pewnym momencie natrafilem na niezrozumialy fragment kodu. Jak sie później dowiedzialem sa to podstawy API czy jak to tam sie zwie i ze musze dobrzez znac API aby dalej czytac kurs GL. No dobra owiedzialem sobie co mi szkodzi, rozpracuje ten API i bedzie spoko. No tak tyle ze kurs o API jest jeszcze bardzoiej zje***y, sory za te wyrazenia ale inaczej nie da sie tego nazwac. "Weźmy pod lupe" np. pierwszy program API z kursu. No dorba wwalam kod Do C++ i wszystko dziarga. Ale gdy dochodze do wytlumaczenia dzialania kodu to załamka. Gośc ktory to opisywal wszystko pomijal i odsylal mnie do jakiego prostytutka help-a. I tak przeczytawszy czesc kursu poswiecona tworzeniu okien pod windowsa, nic nie zrouzmialem. Gosciu chyba myslal ze kazdy kto czyta ten kurs to chyba jakis prostytutka a Einstain jest. Owija w bambuku a nic konkretow. Szczeze te kursy moze byly by dobre gdybym z nich cos rozumial. Oczywiscie znam podstawy C++ ale oto fragmet kursu:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
brrrrrr !, az ciarki przechodza. Nie bede sie tu moze wglebial w drobne szczegoly w roznicach pobieranych typow przez ta funkcje w roznych przykladowych programach, z ktorymi przyjdzie sie nam zmierzyc, zapewniam jednak, ze zawsze chodzi o to samo. A o co chodzi juz wyjasniam:
HINSTANCE hInstance – jest to tzw. uchwyt realizacji ( ???? ). Czym z kolei jest uchwyt ? Uchwyt to po prostu liczba, ktorej uzywa aplikacja do identyfikowania czegos czego moze "dotknac". W naszym wypadku uchwyt przekazywany do tej funkcji identyfikuje nasz program. Nie musimy jednak zawracac sobie tym glowy bo bedziemy z tego bardzo rzadko korzystac.
HINSTANCE hPrevInstance – jest to uchwyt ( juz wiemy co to ) do poprzedniej realizacji programu. W Windows mozemy uruchomic kilka kopii tego samego programu ( o czym moze nie wszyscy wiedza :), sa to wlasnie tzw. realizacje. W starym Windows kazdy nowy program uruchamiany z pliku exe korzystal z zasobow programu, ktory byl zaladowany jako pierwszy, z tego samego exec'a, natomiast w nowym, tym bardziej pokreconym zrezygnowano z tego i ten parametr jest zawsze ustawiany na NULL, wiec nie powinien nas obchodzic w najmniejszym stopniu.
LPSTR lpCmdLine – w koncu cos znajomego. Nic innego jak linia polecen programu. Tu umieszczany jest lancuch znakow, ktory nastepuje zaraz po nazwie naszego programu, np. "aqq.exe". Przewaznie oczywiscie nie wpisujemy zadnych parametrow programu ( zwlaszcza, ze szczegolnie w Windows jest to bardzo utrudnione ), ale mysle, ze o tym parametrze warto pamietac, bo moze sie kiedys przydac.
int nCmdShow – parametr ten mowi naszej aplikacji w jakiej postaci ma zostac uruchomiony nasz program ( dokladniej mowiac jego okno ), czy ma byc zminimalizowane na pasku zadan, czy wypelniac pelny ekran czy jeszcze jakos inaczej.
Nie wiem czy ktos poczatkujacy powinien to zrouzmiec ale to bezsens. Zero konkretow.
Dobra troche ponarzekalem a teraz pytanie. Gdzie moge znaleźć jaki pożadny kurs API, dla kompletnie zielonych w tej sprawie i taki ktory bo dokladnie wyjasnial wszystkie paramety funkcji wyswietlania okien.