




Freebasic Dili Hakkında-Kullanım [Ayrıntılı Anlatım]
-
Piyasada runtime dahil istemeyen diller basic dili hariç hariç genelde çok zordur. Eğer C++ gibi dilleri bilmiyorsanız ve tamamen native ve crossplatform bir dil öğrenmek istiyorsanız(Bunu QT bile yapamıyor) FreeBasic öğrenebilirsiniz.
*Inline ASM Destekler
*API declare etmek zorunda kalmassınız "#include" ile kendi tanımlama dizisini kullanabilirsiniz.
*Preprocessor destekler!
*Pointer Destekler ! (Bunu .Net dilleri içinde sadece C#(ve F#?) ile o da saçma sapan bir şekilde yapabilirsiniz)
*Tamamen ücretsizdir!
*Firefly adlı uygulama ile kolayca GUI tasarlayabilirsiniz ancak API ve kullanımını iyi bilmelisiniz.
*Tamamen Native dir Visual C++ gibi runtime istemez.
*Preprocessor uygun kullandığınız takdirde Backtrack de bile çalıştırabilirsiniz uygulamalarınızı.
*Unicode Destekler.
*Tamamen Native olduğundan virüs gibi şeyler yazabilirsiniz.
*GTK+ destekler.
*Derleyicisi sadece 1.38 kb dır.
*sqlite yi varolan kütüphanesi ile destekler.
*Oyun geliştiricileri için uygundur! OpenGL,DirectX Kütüphaneleri Varolarak gelir
*Inline LUA,C,C++ destekler.
*Dahili hafıza fonksiyonları vardır (Callocate,Allocate,Deallocate)
*Quick Basic dili temel alınmıştır ancak Visual Basic bilen biri de rahatça alışabilir.
*Dahili C++,LUA,Visual Basic,C destekler yani ekstra bir dosya ile bunları ekleyebilirsiniz ve Free Basic derleyicisi bunları tanır ve derler.
*Network olarak Winsock gibi kütüphaneleri bulunur ekstra "declare" gerekmez.
*Regex Destekler
*vb* Constant uyumluluğu için vbcompat.bi adında kütüphanesi mevcuttur.
*XML Destekler
*Ses kütüphaneleri varolarak gelir sizi uğraştırmaz.FreeBasic IDE (Varsayılan - Derleyici de Bununla Gelir): http://fbide.freebasic.net/
FreeBasic IDE (Meşhur RADAsm yapımcısı RAD Software in yaptığı gelişmiş IDE, ancak eski sürümdür tavsiye etmem bunun yerine firefly kullanın): http://radasm.cherrytree.at/fbedit/GUI Hazırlamak İçin (Aynı Visual Basic 6.0 Gibi):
FireFly 3 : http://www.planetsquires.com/files/FireFly_FB_350.rarNOT: GUI Hazırlamak için API kullanımı öğrenmek zorundasınız ama Firefly bazı kolaylıklar sağlamıştır örneğin:
Label1 Adlı label ın caption ını değiştirme:
FF_Control_SetText HWND_FORM1_LABEL1, "YeniCaption"
Bu tür Firefly ın sağladığı güzel özellikleri View->Functions Library de bulabilirsiniz. Ancak yine de API bilmek şart.
---
Örnek 1:
[Firefly ve FreeBasic ile MessageBox Hazırlama]
[MessageBox API'si İle]FireFly ı açıp proje oluşturup 1 command button ekleyip iki kere tıklayın.
Şimdi size free basic in güzel özelliğini tanıtacağım:
#Include "windows.bi"
İşte sadece bu komutla neredeyse tüm win32 API leri uygulamanıza ekleniyor. Ancak burada crossplatform yapmak isterseniz şöyle yapın:
#if defined(__FB_DOS__) or defined(__FB_WIN32__) #Include "windows.bi" #else 'Burayi genel olarak linux diye dusunelim #endif
Bu şekilde crossplatform yaptık.
Ve bunun yanında API için NULL tanıtmamız gerek bunu 0 ile yapabiliriz ama NULL yaparsak daha anlaşılır olur:#if defined(__FB_DOS__) or defined(__FB_WIN32__) 'Ayni C++ deki gibi burasi #Include once "windows.bi" 'Buranin neden Once oldugunu siz arastirin. #else 'Burayi genel olarak linux diye dusunelim #endif #ifndef NULL 'if not define yani tanimli degilse #Define NULL 0 'NULL u 0 olarak tanit #endif 'If sonlandir
Şimdi API'yi yazalım: (Bunu commandbutton kod bloğunun içine yazın):
http://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v=vs.85).aspx
Messagebox(hWndForm(referans olarak gelir findwindow api kullanmamiza gerek yok) (Handle değeri, Null olabilir ancak biz yine de form un hwnd verelim), Messagebox İçeriği, Messagebox Başlığı,Messagebox tipi örneğin MB_OK Constant i Ancak bunu bizim tanimlamamiza gerek yok yine "windows.bi" de önceden tanimli bu yani declare etmemize gerek yok)
MessageBox(hWndForm,"Merhaba Dunya","Merhaba Dunya [BASLIK]",MB_OK)
-
Buraya ilgi olursa 2. dersi,Messagebox un yanıt döndürmesini anlatırım.
-
Eline sağlık hocam anlatım gayet sade olmuş, giriş için ideal bir anlatım, kafayı toparlar toparlamaz freebasic'e giriş yapacağım umarım yardımcı olursun başladığımda.
-
Hocam, saat sabahin olmus, ben buraya cizik atayimda yarin devam ederim, kimse olmasa bile sen devam et en azindan ben bakarim.
Nedendir bilmem, gorsel diller daha cok hosuma gidiyor(VB6.0 gibi).
-
2-3-4-5-6.................... dersleri istiyorum
-
directx kütüphanesi var, crossplatform olarak çalışabiliyor? tam anlayamadım?
-
oyun geliştirebiliyorsun ve windows harici platformlarada yazabiliyorsun programını demek istemiş
-
Nobel bunu yazdı
oyun geliştirebiliyorsun ve windows harici platformlarada yazabiliyorsun programını demek istemiş
directx sadece windowsta çalışmıyor mu? nasıl linuxta çalışacak?
-
mRBerkay bunu yazdı
directx kütüphanesi var, crossplatform olarak çalışabiliyor? tam anlayamadım?
Dil genel olarak crossplatform eğer directx kullanırsan tabiki öyle olmaz ancak bildiğin gibi opengl üzerinde çalışırsan yine crossplatform olur.
-
sniperscope bunu yazdı
Hocam, saat sabahin olmus, ben buraya cizik atayimda yarin devam ederim, kimse olmasa bile sen devam et en azindan ben bakarim.
Nedendir bilmem, gorsel diller daha cok hosuma gidiyor(VB6.0 gibi).
Peki devam ederim ancak şunu unutma bu VB6 gibi M$ in tekelleştirdiği görsel bir dil değil. Normal IDE varsayılan olarak sadece komut satırı sunuyor ancak C++ daki resource editor gibi bunda da Firefly ile aynı VB6 gibi GUI hazırlayabiliyorsun, hem de profesyonel bir şekilde. Öyle ki VC++ bile bazı durumlarda Runtime kütüphanesi istediği durumlarda bu istemiyor VB6 gibi core kütüphaneye bağlı çalışmıyor ve fb derleyicisi tamamen native assembly haline derliyor, C dili mantığı. Yani Framework,Runtime DLL gibi şeyler istemiyor bu yüzden bu dil ile işletim sistemi bile yazabilecek kapasiteye sahip diyorlar.
-
eline salık hocam
ingilizce makaleler var burda http://www.freebasic.net/wiki/wikka.php?wakka=CommunityTutorials