Két éve van hozzáférésem a Windows forráskódhoz, de amíg oktattam nem sok hasznát vettem, mivel zömében managed kódokkal volt dolgom.
Most az új munkámban viszont részben natív C++ kódokat tanulmányozok. Volt például egy probléma, amiben a BitBlt API függvény nem másolta át a Layered Window technikával kialakított ablakokat (egyfajta Screen Capture dologról van szó). A forrásban megkerestem mi fut le a Print Screen megnyomására, az ugyanis kiválóan másolta ezeket a különleges ablakokat is. Kiderült, hogy van egy plusz paramétert, amivel meg lehet mondani, hogy a Layered Windokat is másolja. Persze, az egész publikus, benne van a gdi.h-ban, de a fene vette észre magától, könnyebb volt megnézni az MS hogy csinálja házon belül.
A másik, amin most éppen dolgozom, hogy a cég programja egy, IE-ben futó ActiveX-et használó alkamazás összeveszik egymással, amitől elszáll az IE. Az a nagyszerű, hogy a forráskódokhoz jár egy private debug symbol repository, így a VS lehúzza maga alá az összes betöltött windows dll szimbólumat, így akár forráskód szinten tudom debugolni a windows komponenseit. Az IE debug miatt eddig 250 mega szimbólum jött le.
Ez a cikk leírja hogyan is megy a dolog.
Ajánlom a témában a Debugging Applications for Microsoft .NET and Microsoft Windows c. könyvet, nagyon jó.
Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.