Program Yapmak

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zeybekustasi
    zeybekustasi's avatar
    Kayıt Tarihi: 24/Mayıs/2012
    Erkek

    Çok basit gelebileceği için programlamaya giriş kısmına açtım.

    Ben bilgisayara not programı indirdim StikyNot adlı.

    Geliştirilmesi gerek benim işime lazım bir çok özelliği yok.

    Arayüz olarak basit bir program ve .exe uzantılı.

    Bilgisayara download la indirdiğimiz bu basit programlar nasıl yapılıyor.

    Programlama dilleriyle mi yazılıyor mesela C ile mi yapılıyor ?

    Diğer sorum windeovs  bilmem kaç satır C kodundan oluşur diyorlar. Gerçi c ye bir aydır başladım ama C de yazılan kodu o saçma ms-dos siyah ekrandan çıkarıp renkli arayüz nasıl katılıyor ?


    https://www.youtube.com/watch?v=WC3-71NKwPw
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    bahsettiğin şeyin ismi gui dir hocam graphic user interface ( grafiksel kullanıcı arayüzü) c,c++,c#,java... hepsinde gui il ilgili uygulamalar yapabilirsin

    ama daha başlangıç aşamasında olduğun için şahsi tavsiyem böyle şeylere şimdilik girmemen bunun yerine nesneye yönelimli programlamayı iyi

    şekilde öğrenmen. gerisi gelir zaten.. 


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    esinti
    esinti's avatar
    Kayıt Tarihi: 27/Ağustos/2015
    Erkek
    c# yeterde artar sana int. deki kodlari toplarlasan bile rahatlikla program yaparsin

    2 dir program yaziyorum birinde yedek almadan format atmistim ikincisindede hdd bozuldu acaba bunlar bana mesajmi yazma diye :)
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    E arayüz olduğunu biliyonda niye googleda arayüz nedir nasıl hazırlanır diye aratmıyon? :D

    Sorularına gelince;

    -C de arayüz olayı(mürid tugberk bi ay fln önce bi konuda ileri seviye birşeylerden bahsediyordu ancak ben onları bilmiyorum) visual studioda var bir de qt denilen dilde var(gui dili diyemiyorum çünkü başlı başına bir dil resmen) visual studioda cye arayüz oluşturmak saçma geliyor bana çünkü c# varken vb.net varken ne diye c ile uraşayım sadece windowsta çalışacak birşey yazmak için? :) ayrıca bazı linux dağıtımlarının kullanıcı arayüzleride qt ile yazılmış. Yani anlayacağın c ve qt ile yapılamayacak şey yok gibi bişey.

    -O dediğin programa bakmadım ancak açık kaynak kodlu değilse birşey yapamazsın, ki açık kaynak kodlu olsa bile birşey yapabilmek için daha önünde bayaa yolun var. Ha çok istiyorsan yılmadan araştır kendin yaz o tarz bişey hem öğrenmiş olursun.


    :)
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tugberk
    Tugberk's avatar
    Kayıt Tarihi: 04/Ekim/2009
    Erkek

    Bir sürü yolu var, linux için qt kullanıldığı yarım doğru, kde ortamında qt kullanılır, gnome ortamında gtk+.

    Windows için C ile gui programları yazmak C# a vs göre çok daha zordur ancak heryerde anlatıldığı gibi yüzlerce satır almaz. Microsoft bu işleri nasıl yapılıyor onu anlatayım. Yoksa internetteki örneklere bakarsanız yanlış fikir edinirsiniz.

    Önce her hangi bir resource editör ile visual basic formu hazırlar gibi form hazırlıyorsunuz. Visual studio ortamında tümleşik resource editör en baştan beri var. Bundan sonra size .rc uzantılı bir text dosyası veriliyor, her kontrolün adı türü özellikleri koordinatları vs burda var. Benim vereceğim örnekteki rc şöyle. Resedit adlı programla oluşturuldu.

    #include <windows.h>
    #include <commctrl.h>
    #include <richedit.h>
    
    #define PENCERE		101
    #define BUTTON1		1001
    
    PENCERE DIALOG 0, 0, 150, 100
    STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_VISIBLE | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP | WS_SYSMENU
    EXSTYLE WS_EX_TOPMOST 
    CAPTION "Deneme"
    FONT 8, "Ms Shell Dlg 2"
    {
        PUSHBUTTON      "Button", BUTTON1, 80, 75, 50, 15
    }
    
    LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
    1                  RT_MANIFEST    ".\\manifest.xml"

    Bu dosyayı biz yazmıyoruz, otomatik oluşuyor, gelelim C dosyasına, C dosyasında WinMain içinde DialogBox fonksiyonunu gerekli parametrelerle doldurarak, DialogProc fonksiyonunu çağırıyoruz ve programın yaşamı bu fonksiyon içinde devam ediyor, handle ettiğimiz olaylar için return 1, diğer tüm olaylar için return 0. Default olarak birçok olay handle edilir zaten, biz sadece bizi ilgilendirenler için kod ekliyoruz, benim kodumda, butona basılması olayı mesela, beni ilgilendiren bir olay, Butona basılınca mesaj kutusu gösterme kodu ekliyorum.

    C kodu aşağıdaki kadar

    #include <windows.h>
    #ifndef _WIN32_IE
    #define _WIN32_IE 0x600
    #endif
    #include <commctrl.h>
    
    #define PENCERE		101
    #define BUTTON1		1001
    
    INT_PTR CALLBACK DialogProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
    	if (uMsg == WM_CLOSE) {
    		EndDialog(hWnd, 0);
    	}
    	
    	if (uMsg == WM_COMMAND)
    	{
    		switch(LOWORD(wParam))
    		{			
    			case BUTTON1:
    				MessageBox(hWnd, "Mesaj", "Baslik",0);
    				break;
    		}
    		return 1;
    	}		
    	return 0;
    }
    
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
    {
    	return DialogBox(hThisInstance, MAKEINTRESOURCE(PENCERE),0, DialogProc); 
    }

    Bunlar dışında, görsel olarak butonlar vs güzel görünsün diye manifest dosyası eklenir resource'a , bu da tamamen otomatik bir işlem, siz yine hiç birşey yapmıyorsunuz, add manifest demek dışında, yine de merak ederseniz xml in içine bakabilirsiniz.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <dependency>
    <dependentAssembly>
    <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
    </dependentAssembly>
    </dependency>
    </assembly>

    Şimdi derlemek için istediğiniz herhangi bir C derleyicisini kullanabilirsiniz, visual studio için basitçe bu 3 dosyayı ekleyin projeye ve derleyin, windows projesi seçmezseniz konsolla beraber çıkar form. Mingw kullanmak isterseniz, aşağıdaki komutlar ile derleyin.

    gcc main.c -c
    windres -i resource.rc --input-format=rc -o resource.res -O coff
    gcc main.o resource.res -o program -mwindows

    Tabi Mingw/bin dizinini path'e eklemiş olmanız lazım.

    Özetle, sanıldığı gibi, mesaj döngüsünü kendinizin yazmanıza, tek tek CreateWindowEx ile kontrol oluşturmanıza filan gerek yok, onlar çok alt seviye gereksiz işlemler.

    Kaynak ve exeyi şurdan indirebilirsin. http://www.sendspace.com/file/1u3fqs

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SerYolcu
    SerYolcu's avatar
    Kayıt Tarihi: 14/Ocak/2010
    Erkek

    Adım adım cevaplayayım..

    - StickyNote isimli bir program kullanıyorsun ve bu programa bir kaç özellik eklemek istiyorsun.

    Elinde sadece stickynote nin .EXE hali var ise buna özellik katamazsın.

    Bir programa ekstra özellik katmak istiyorsan, o programın kaynak koduna sahip olmalısın.

     

    Ama yine de menüleri türkçeleştirmek, program içindeki bazı resimleri değiştirmek gibi işlemler için

    source hacker, source editor gibi programlar kulanabilirsin.

     

    - Kendi bilgisayarına indirip kullandığın tüm programlar çeşitli programlama dilleri ile geliştirilir..

    Bu programlama dili genelde C dir.

    Ama burada aklıma gelen bir kaç programlama dilini de söyleyeyim...

    Pascal, Delphi, C++, C#, Java dilleri ile de program geliştirebilirsin.

    Hatta ihtiyaca göre Cobol, Basic dilleri ile de program geliştirilir.

     

    - Windows un satır sayısını bilmiyorum ama, komplike özellikleri olan böyle programlar hem çok yüksek sayıda satır sayısına sahiptir,

    hem de bir den çok kişinin ortak çalışması ile yazılır.

     

    - C ye GUI kazandırmayı internette araştırmak lazım, o konu hakkında bilgim yok...

     


    Ondan çocuk olmamıştır (Kimsenin babası değildir). Kendisi de doğmamıştır (kimsenin çocuğu değildir). İhlas Suresi 3 üncü ayette bunlar yazar.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zeybekustasi
    zeybekustasi's avatar
    Kayıt Tarihi: 24/Mayıs/2012
    Erkek

    Sağolun arkadaşlar.

    Tugberk hoca yine döktürmüş eline sağlık.

    Öğrendiğim iyi oldu.


    https://www.youtube.com/watch?v=WC3-71NKwPw
Toplam Hit: 1506 Toplam Mesaj: 7