Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Rysunek1.16.Kodstrukturalny–deasemblacjaczęścigłównejfunkcji;wywołaniefunkcjiset_colorwkonwencji
stdcall
Rysunek1.17.Kodobiektowy–deasemblacjaczęścigłównejfunkcji;wywołaniefunkcjiset_colorwkonwencji
thiscall
Samkodfunkcjiustawiającejkolorwyglądawobuprzypadkachniemaltaksamo(patrzrys.1.18i1.19).
Rysunek1.18.Kodstrukturalny–deasemblacjaczęścifunkcjiset_color;obaparametryfunkcji(wskaźniknastrukturęorazkolor)sąprzekazywaneprzezstos
Rysunek1.19.Kodobiektowy–deasemblacjaczęścifunkcjiset_color;pierwszyargument(zgodniezkonwencją
thiscall
)znajdujesięwrejestrzeECX
1.3.2.Obiekty=struktury+funkcje+thiscall
Jedynaróżnicamiędzydwiemawersjamipowyższegoprogramupolega(wzasadzie)natym,żewprzypadkuobiektowymkompilator
„wie”,żetrzeba(niejawniedlaprogramisty)przekazaćwskaźnikobiektujakopierwszyparametr(wkonwencji
thiscall
–czyliwrejestrze
ECX).Wprzypadkukodustrukturalnegoprogramistamusizrobićto„ręcznie”–przekazującwskaźnikjakoparametr.Odnalezieniekodu,
wktórympodczaswywoływaniafunkcjiużytokonwencji
thiscall
,jestpierwsząiwzasadzienajważniejsząwskazówkąświadczącąotym,