Basit

Geri dön
Kütüphane Desteği


Basit yazılım dili Baytkod altyapılı olarak çalışır. Fakat Basit hem Baytkod altyapılı kütüphaneler, hemde gerçek kütüphaneler kullanır.

BEK (Basit Eklentiler Kütüphanesi) dosyaları Basit ile kodlanabilen ve derlenebilen özel kütüphanelerdir. Bu türler işletim sistemine bağlı değildir. 32 ve 64 Bit olarak özellikle ayırt edilmezler. Bu dosyalar universaldir. Bir kere derlendikten sonra her projede, her makina için ve istersen 32 Bit, istersende 64 Bit olarak kullanılabilir.

BEK dosyaları Basit uygulamalarına birçok öğeler sunabilir. Bunlar şöyle: Bir BEK dosyası normal bir Basit projesi olarak kodlanır. Dışarıya sunacağı öğeleri "Erişilir" olarak belirtilmesi lazımdır. Derleme modeli olarak proje ayarlarından "Basit Eklentiler Kütüphanesi" seçilmesi lazımdır. Bit kütüphanenin "Başlat" prosedürü olmaz!

Örnek Kütüphane Dosyası:

   Erişilir Yapı yapım ? Dışarıdan okunabilir
      Değişken Rakam a; b
   YapıSon
   Yapı diğerYapım ? Dışarıdan okunamaz
      Değişken Rakam a; b
   YapıSon
   Erişilir Değişken Rakam seriNo; ciltNo ? Dışarıdan okunabilir
   Değişken Rakam rak1; rak2 ? Dışarıdan okunamaz
   Erişilir Prosedür merhabaDe () Metindir ? Dışardan çalıştırılabilir
      Sonuç "Merhaba Dünya"
   ProsedürSon
   Prosedür birProsedür () Metindir ? Dışarıdan çalıştırılamaz
      Sonuç "tüh, olmuyor"
   ProsedürSon
   SaltVeriAlanı verilerim
      Rakam 1; 2; 3; 4; 5
   SaltVeriAlanıSon

Kütüphane dosyasını bağlayıp, çalıştırma örneği:

Kütüphane bağlantıAdı Kaynağı "KütüphaneDosyası"
   İthal Değişken Rakam seriNo; ciltNo
   İthal Prosedür merhabaDe () Metindir
   İthal SaltVeriAlanı verilerim
KütüphaneSon

Prosedür Başlat ()
   MetinselDenetim bağlantıAdı.merhabaDe()
ProsedürSon

Gerçek kütüphaneleri Basit derleyemez, ama kullanabilir. Bu dosyalar Mac işletim sisteminde DyLib ve SO (Shared Object), Linux işletim sisteminde SO (Shared Object) ve Windows işletim sisteminde DLL dosyalarıdır.

Gerçek kütüphaneler STDCALL ve CCALL/CDECL modellerinde desteklenmektedir. Windows işletim sisteminde genellikle STDCALL modelinde kütüphaneler derlenir. Mac ve Linux işletim sistemlerinde genellikle CCALL/CDECL modeli kullanılır.

Basitin kullanacağı kütüphaneler mutlaka STDCALL veya CCALL/CDECL olarak hazırlanmalı ve derlenmeli.

Eğer kütüphane bağlantısı kurulacağı zaman STDCALL veya CCALL/CDECL özellikle belirtilmezse, o halde Basit Windows için otomatik olarak STDCALL ve Mac/Linux için otomatik olarak CCALL/CDECL kullanır.

CCALL ve CDECL aynı şeydir. Basit standartlaştırmak için CDECL anahtar kelimesini STDCALL ile benzerlik taşısın diye, CCALL olarakta kabul eder.

Örnek:

Kütüphane bağlantıAdı Kaynağı "KütüphaneDosyası" ; CCALL
   İthal Değişken Rakam seriNo; ciltNo
   İthal Prosedür merhabaBe () AsciiMetnidir
   İthal SaltVeriAlanı verilerim
KütüphaneSon

Gerçek bir kütüphane sadece prosedürler sunabilir. Ayrıca Basit sadece 6 adet parametreye kadar bu tür prosedürleri destekliyor. Yani bir prosedür parametresiz, tek parametreli, çift parametreli, üç parametreli, dört parametreli, beş parametreli veya alt parametreli olarak destekleniyor. C/C++ ve Basit veri türleri tam olarak uyumlu değil. Tür karşılıkları şöyle:

Basit C/C++
YarıBayt char
Bayt, Ascii unsigned char
KüçükRakam short
ÇiftBayt, Karakter, SafKüçükRakam unsigned short
Rakam, Renk, Saat long
SafRakam unsigned long
EsnekRakam int
SafEsnekRakam unsigned int
KüçükVirgül float
Virgül double
AsciiMetni unsigned char*, char *
Metin unsigned short*, short*

İşaretli parametreler ve sonuç verme C/C++ prosedürleri ile uyumlu değil ve bu yüzden desteklenmiyor. Ayrıca Dizilimler tek dimensiyonlu olarak desteklenir. "AsciiMetni" ve "Metin" türleri zaten birer Dizilimdir. Bu türlerden Dizilim türü yapılamaz.

Esnek, Renk, Saat, Tarih ve TarihSaat türleri desteklenmiyor. Yapısal ve objesel türler desteklenmiyor. C struct ve C++ class maalesef desteklenmiyor. Fakat geniş çaplı veri aktarımı bellekte alan rezervasyonu yoluyla yapılabilir.

Unikod desteyi C/C++ yazılım dillerinde standartlaştırılmamıştır ve işletim sistemlerinin sunduğu imkanlara bağlıdır. C/C++ standartlarında Unikod için özel bir destek yoktur. Bu yüzden C/C++ prosedürleriyle çalışırken daha çok Ascii karakterleriyle çalışmak gerekir veya işletim sisteminin sunduğu imkanlardan yararlanmalıdır.

Windows birçok API (Windows NT ver üzeri için geçerlidir) prosedürlerini hem Ascii (*_A), hemde Unikod (*_W) olarak sunuyor. Mac ve Linux ise bu konuda özel birşey sunmuyor, fakat metinleri UTF8 biçiminde yönetiyorlar. Windows NT 4 ve üzeri sürümleri için "Metin", eski sürümler için "AsciiMetni" türü kullanılabilir. Mac ve Linux için ise "AsciiMetni" kullanmak daha iyi olur.

Örnek

İnternetten bilgi edinme

Geri dön



Giriş      Kaydol      Bilgi      Gizlilik      Site Haritası



Bu İnternet sitesinde bulunan tüm kod, görsel kaynaklar ve bilgi, özellikle belirtilmemiş ise, 5M-Ware'e aittir ve tüm hakları saklıdır. Bu kaynakların izinsiz kopyalanması, izinsiz başka platformlarda kullanılması yasaktır. Ayrıntılı bilgi için Kullanıcı Sözleşmesini inceleyebilirsin.


ok
Bu web sitesi çerezleri saklamaz. İletişim formu aracılığıyla yapılan sorular geçici olarak saklanır ve işlemden sonra silinir. Yazı tipleri Google’dan alınmıştır. Ayrıntılı bilgi için  Gizlilik Politikamızı  inceleyin.

5M-Ware Youtube Videoları Blogger Tumblr


Icons erstellt von Freepik from www.flaticon.com


Tüm Telif Hakkı Saklıdır© 2019-2023 5M-Ware
info@basit.web.tr