Witam.
Mam takie małe pytanko. Otóż czy nie orientuje się ktoś czy w każdym Windowsie 98, 98 SE, W2k, XP ... numery porządkowe funkcji API są tak samo przypisane do nazwy funkcji? Chodzi mi o to, że dla przykładu u mnie w systemie funkcja o nazwie GetProcAddress z systemowej biblioteki kernel32.dll ma numer porządkowy 408. Moje pytanie jest następujące: czy ta i inne funkcje systemowe będą miały te same wartości porządkowe we wszystkich 32 bitowych systemach operacyjnych Microsoftu?
Mikrosoft i cracersi nie zalecaja stosowania metody wywolania funkcji w ten sposob,
mysle ze ladowacz programu przede wszyskim pod uwage bierze nazwe funkcji i nazwe
biblioteki, numery moga byc rozne zaleznie od systemu , co wiecej istnieje tez przekierowanie nazw
funkcji na inne co daje ten skutek ze wywolujac jakas funkcje API w programie
system wywoluje calkiem inna.Polecam "Programowanie aplikacji dla windows " Jeffrej Richter,
najlepiej stosowac funkcje systemowe LoadLibrary i GetProcAddress
dzejo dzięki za odpowiedź
W sumie to w międzyczasie poprosiłem kumpla, który jedzie na XP prof bez SP ( ja XP home SP 2 ) o jego kernel32.dll i okazało się, że niestety masz rację. A szkoda :(
Cytat z ksiazki - Jeffre'a Richtera
" FARPROC pfn = GetProcAddress(hinstDll,MAKEINTRESOURCE(2));
....
Dawniej,w poczatku mojej kariery programowania w Windows , nie
rozumialem do konca tego dzialania i sparzylem sie na nim kilka razy -
wiec uwazaj ( jest to kolejny powod , aby unikac numerow porzadkowych ...)
polecam ksiege jest ok!
pozdro .
Przecież napisałem, że spoko ;)
Uwierzyłem Ci a kernel32.dll od kolegi utwierdził mnie w przekonaniu, że masz rację :)
Wiem także jak wywoływać funkcje z załadowanej biblioteki. Chodziło mi tylko o to czy numery porządkowe funkcji API będą takie same w każdym 32 bitowym systemie operacyjnym Microsoftu. Teraz wiem, że nie.
Pozdrawiam i dziękuję za odpowiedź.