Click here to load reader

delphi xe5

Embed Size (px)

Citation preview

  • 1. ok Kanall Programlama (Thread Programming) DELPH XE5

2. Disk zerindeki her bir dosya altrldnda windows iin birer ilem(process) olurlar. Bir ilem Windows iin fazla bir ey ifade etmez. nk ilemler sadece hafzada belli bir blgede var olmaktan sorumludur. Esas ilemi yapan ksm kanallardr(thread). Bir ilem en az bir adet kanala sahiptir. Win 3.1 gibi iletim sistemleri sadece bir adet kanala sahiptir. Ama Windows 95 ve st, Unix, OSX gibi iletim sistemleri birden fazla kanala sahip olabilirler. 3. letim sistemi bir program ya da bir DLLi ilk bata ilem olarak hafzaya tar. Bu esnada ilem eylemsiz olarak durur. Bu ileme ait kanallar ise bizim belirlediimiz lde programn kodlarn altrmaya balar. 4. Bir Kanal Oluturalm Kanal oluturma ile sorumlu Windows fonksiyonu CreateThread fonksiyonudur ve aadaki gibi tanmlanmtr: 5. KanalFonksiyonu isimli fonksiyonumuz kanal iinde almaya balayacaktr. 6. Kanal Fonksiyonlarna Parametre Gnderimi CreateThread fonksiyonunun parametrelerini aklarken lpParameterden sz etmitik ve bu parametre ile kanal fonksiyonuna istediimiz parametreyi gnderebileceimizi belirtmitik. imdi bunu nasl yapacamz grelim. 7. Bunun iin de yaptmz rnekten faydalanacaz. lk bata type blounda aadaki record tanmlamasn yapalm. 8. Ardndan kanal fonksiyonumuzu aadaki gibi deitirelim. 9. En son olarak buttonnun OnClick olayn da aadaki gibi olacak ekilde deitirelim. 10. DELPH XE5 DE MN CHAT OLUTURMA 11. Program ayoruz ve file other seeneine tklyoruz. 12. Blank Aplication diyoruz ve ok butonuna basyoruz. 13. Formumuzu oluturduk. 14. Speedbuttonun simgesini deitiriyoruz. 15. Align i alright yapyoruz. Ardndan margins < right ksmna 10 yazyoruz. 16. Formumuza 2 edit ve 1 rectangle ekliyoruz. 17. Daha sonra forma label ve buton ekliyoruz. 18. Formumuzu kaydediyoruz. 19. Kaydettikten sonra aadaki kodlar giriyoruz. 20. Kodlarmz girdikten sonra tekrar kaydedip altryoruz. 21. UYGULAMA KORUMASI (OBSUFCATE) 22. Kod kartrmann dier bir kullanm alan da kodun daha iyi ve efektif hale getirilmesidir. Kod kartrma iin kullanlan aralar kodu analiz ederek gereksiz/yararsz kodlar ve metadata blmlerini krpabiliyor ve bu sayede kod boyutunda azalmayla birlikte performans art salanabiliyor. 23. Java ve .Net gibi just-in-time derleme ve altrma yaplan ortamlarda kodlarn ak edilme riski derlenerek makina koduna evrilen ve bu ekilde datlan programlara gre ok daha byktr. Bu makalede zellikle .Net altrlabilir dosyalarnn (EXE) ve snf ktphanelerinin (DLL) kodlarnn ne kadar ak seik eriilebilir olduunu ve kod kartrc kullanarak kodlarn nasl anlalamaz hale getirilebileceini inceleyeceiz. 24. ncelikle basit bir Windows Forms uygulamas hazrlayalm. 25. Kodda ClsTest isimli snfta kastl olarak deiik tipte deikenler ve property'ler tanmlayarak bunlar eitli ekillerde kullandk. 26. imdi derleyerek elde ettiimiz EXE'yi Lutz Roeder tarafndan gelitirilmi Reflector isimli program kullanarak demonte (disassemble) edelim. 27. imdi ClsTest snf zerinde sa tu yaparak Disassemble komutunu verelim ve sa kenarda alan blmde bu snfn kodunun aka grelim. 28. Resimlerde grld gibi kodu eksiksiz bir biimde, tm deiken ve belirte (identifier) adlar ayn kalm olarak ortaya kartmak ok kolay; daha gelimi aralar kullanarak uygulamann tm kodunu eksiksiz bir ekilde elde etmek de mmkn. Yani biz her ne kadar derleme ilemine tabi tutarak EXE retiyorsak da bu EXE'ler (ve tabi DLL'ler) makina koduna deil CLR tarafndan iletilmek zere ara koda (intermediate code) dntrlyor. 29. DECOMPLE HAKKINDA BLG 30. Delphi ile yazilan programlarin icerikleri hakkinda kisitli bilgi veren decompiler. deplhide kodlanan exelerin hazirlik asamasindaki dfm, pas, dcu, dpr dosyalarinin icerigini okumaya yarar. 31. Teekkrler..