dll ve datamodule

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

dll ve datamodule

Mesaj gönderen Fatih! »

Merhaba Arkadaşlar,
Büyük bir proje yapmaya çalışıyorum. program büyük olduğu için exe baya şişiyor. bunun için dll kullanmayı düşünüyorum. data erişim bileşenleri datamodulede dll formu yaparken datamoduledeki bileşenlere ulaşmaya çalışırsam undeclerated idendifier hatası verecektir.
her formada bir datasource query database bileşeni eklersem hem dataseti açıp kapamak programa yük getirecek hem de çok zahmetli olcak.
umarım açıklayabilmişimdir.
son olarak kitapta dll ler konusunda 32 bitliklerde index tanımı yapmak gerekmez deniyor.
ne demek istiyor anlayamadım :oops:
veri tiplerindede 32 bit 16 bit deniyor. nedir bu?farkları nedir?
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

eger exe boyutunun fazla olması rahatsız ediyorsa
kullanılan vcl paketlerini exe icine dahil etmeyin
bu bpl leri system altına yada programın calıstıgı klasore kopyalayın yeter
bir projeji dll lere bolmek ozel durumlar haricinde gereksiz bence
ÜŞENME,ERTELEME,VAZGEÇME
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

EXE'nin boyutundan rahatsız olmak da bence gereksiz. Günümüzde bir sabit diskin min. 80 GB'tan başladığını düşünecek olursak ne gibi bir fayda sağlayacak size merak ediyorum. Sonuçta çıkardığınız DLL'de bir yer kaplayacak, hatta toplamda EXE'nin içine gömdüğünüzden daha fazla bir yer işgal etmiş olacaksınız.

EXE boyu programı inceleyip, optimize edilerek azaltılabilir. Daha etkin bir yöntem henüz yok. EXE sıkıştırıcıları hiç tavsiye etmem. Çünkü bu sıkıştırıcılar bellekte EXE'nizi açarlar, ancak bellekte EXE'nin sıkışmış hali + decompressor boyutu + EXE'nin açılmış haldeki boyutu kadar da bir yer işgal ederler. Yani projeniz 2 katından daha fazla bellekte yer işgal eder. RAM'mi daha önemli disk alanı mı diye sorarlarsa ben RAM derim.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

DLL'lerde index olayına gelirsek:

index DLL içindeki function veya procedure'e kolay ve hızlı erişimde kullanılır.

Çok gerekli birşey değildir. Çünkü bunlara isimleri ile de kolayca ulaşabiliriz.

16 bit nedir 32 bit nedir?

1 byte bellekte 8 bit yer kaplar. Dolayısıyle 16 bit'lik bir veri de 2 byte lık yer kaplayacak demektir. Buna göre 32 bit 4 byte'lık bir veriye denk gelir.

Mesela Delphi'deki Word tipi 16 bitlik bir veri taşıyabilir. Bu da bir word'de saklayabileceğimiz en büyük sayı 65535 demek anlamına gelir. 8 bit ise en fazla 255 rakamı saklar. (diyelim)

Windows 95-2003 'e kadar olan OS'lar 32 bitlik OS'lardır. Windows 3.1 ise 16 bitlik bir OS'tu. 32 ve 16 bit aslında bellek adreslemesinde önemlidir. Mesela özel yöntemler kullanmadan Windows XP en fazla 2 GB fiziksel bellek adresleyebilir. Çünkü 32 bit'in tutabileceği büyüklük budur.

16 bit işlemcilerin en son örneği 80286 idi. 32 bit 80386 işlemcilerden sonra görüldü. Tabii ki bütün INTEL uyumlu işlemciler geriye uyumludur ve 16 bit uygulamaları da çalıştırabilir.

Uygulamalar açısından 16 bit ve 32 bit arasındaki fark gene bellek adreslemesi ve hesaplamalarda kullanacağı en büyük sayı gibi farklar içerir. Bu da assembly düzeyde 16 bitlik ve 32 bitlik registerleri oluşturur.

Mesela intel uyumlu bir işlemcide 32 bitlik registerler EAX, EBX, ECX... gibi isimler alırlar. Bunlar 32 bitlik veri tutmada, hafıza işlemlerinde ve döngülerde kullanılırlar.

Aslında daha derin bir konu ancak ben özetlemeye çalıştım. Daha fazla bilgi için google da arama yapabilirsiniz.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Konuyu pekiştirmek için bir de örnek vereyim:
Intel uyumlu işlemcilerde 16 bitlik bir register, mesela AX en fazla 65535 sayısını tutabilir. yani assembly'de MOV AX,0FFFFh . 32 bitlik bir register olan EAX da MOV EAX, 0FFFFFFFFh yani 2 milyar küsürlük bir sayı tutabilir.

2 GB'tan büyük bellek adreslemek için bu işlemciler özel segmentasyon metotları kullanırlar.
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Mesaj gönderen Fatih! »

çok teşekkürler
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Mesaj gönderen Fatih! »

projemin henüz başındayım ve sadece iki form oluşturdum. exeninn boyutu 2 mb oldu. claassik bileşenler kullanmama rağme böyle giderse exenin boyutu uçar.
formlarda icon şeklinde bmpler var sanırım onlardan kaynaklanıyor. exeye eklemeden runtimeden yüklesem mi acaba.
deneyimmlerinizi paylaşırsanız sevinirim :roll:
ciidi anlamda yapacağım ilk prroje olduğu için fazla tecrübem yok :oops:
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

20 mb ta kadar yolun var :)
gunumuzde ticari bir exenin boyunun 5-10 mb olması normal bir sey o kadar dosya boyutuna kilitlenmeyin, codelord un da dedigi gibi aslolan ram deki programın ne kadar oldugu
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Mesaj gönderen Fatih! »

Teşekkürler pascalda exenin boyutuna çok önem veriliyordu. 2 formla 2 mb olunca panikledim birden. :oops:
tekrar teşekkürler
Cevapla