Seza Forum
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Seza Forum

Seza forum size en iyi kullanici olma imkani sunuyor.Sizde forumumuza gelerek paylasimlarinizi yapabilir ve paylasimlara yorum yapabilirsiniz.Iyı gunler dileriz
 
AnasayfaLatest imagesAramaKayıt OlGiriş yap

 

 Birkaç Windows Uygulaması

Aşağa gitmek 
YazarMesaj
Ergenekon
Forum Kurucusu

Ergenekon


Mesaj Sayısı : 405
Nerden : Cehennem

Birkaç Windows Uygulaması Empty
MesajKonu: Birkaç Windows Uygulaması   Birkaç Windows Uygulaması Icon_minitimeÇarş. Tem. 16 2008, 09:18

Birkaç Windows Uygulaması

Aşağıda bir text dosyasının içeriğini okuyup ekrana mesaj kutusu halinde getiren küçük bir program bulunmakta. Daha fazla örnek için http://win32asm.cjb.net adresinde tutorial bölümünü veya arama yapmak istiyorsanız www.google.com adresini önerebilirim.

Birkaç Windows Uygulaması Masmed02

Ilk olarak data segment tanımlanmış. File ile gösterilen string diskten okunacak dosya ismini belirtiyor. Diğer ifadeler ise hatalar sırasında gösterilecek mesajları içeriyor. Karşısında ? bulunan bölümler ise program çalışma zamanında gerekecek değişkenleri işaret ediyor. fhandle: Açılan dosyanın handle numarasıdır. Okuma ve yazma işlemlerinde bize gerekecek. fsize : Dosya boyutu öğrenildiğinde buraya kaydedilecek. memptr : İşletim sisteminden bellek alanı istendiği zaman bu alanın adresini burada tutacağız. okundu : Bize pek gerekli değil ama kaç byte veri okunduğunu tutacak.

CreateFileA apisi okumak veya yazmak amacıyla dosyaların açılması işlemini yerine getirir. Gerekli parametreleri geçiyorum, windows api help dosyalarında ayrıntılı bilgi bulabilirsiniz. Daha sonra eax registerine dosyanın handle numarası aktarılacak. Bizde daha sonra okuma yapacağımız için fhandle değişkenimize kaydediyoruz. cmp ile karşılaştırma yapılır. Eğer fhandle 0FFFFFFFF hexadecimal değerini almışsa bir hata oluşmuş demektir. Karşılaştırmadan sonra je ile eşit ise son adresine zıpla şeklinde işleme devam ediyoruz. Aşağıda 'son:' label'ı ile tanımlanan yere atlanırsa eğer burada hata mesajını gösteren bir MessageBox ve çıkış kodu yer alıyor. Hata yok ise alttaki komuta geçilir. GetFileSize ile dosya boyutu öğrenilir ve fsize değişkenine kaydedilir. GlobalAlloc ile dosya boyutu kadar bellek işletim sisteminden istenir, daha sonra buraya okunan veri yerleştirilecek. Yine burada bir hata oluşmuş ise 'sononce:' isimli label'a zıplanır. Burada açılmış olan dosya kapatılır, hata mesajı gösterilir ve program sonlanır. Burada da bir hata yok ise ReadFile api fonksiyonu gerekli parametreleri ile çağrılarak dosya okunur, dosyanın okunduğu adresdeki veri mesaj kutusu halinde ekrana yansıtılır ve programı sonlandırmak amacıyla 'bitti:' label'ı ile gösterilen adrese zıplanır. Derlenen dosyamızın boyutu 6kbyte dır. Program düzgün çalışıyor ama yine içinde küçük bir hata var, bakalım bulabilecek misiniz?

CopyRight (C) Engin KUZU, Haziran 2003
Sayfa başına dön Aşağa gitmek
http://seza.yetkinforum.com
 
Birkaç Windows Uygulaması
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» WINDOWS 2003 SERVER FULL VERSIYON...

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Seza Forum :: Bilgisayar ve Internet Tek. :: Programlama-
Buraya geçin: