folder Tahribat.com Forumları
linefolder C - C++
linefolder C++ Hakkında Bir Soru



C++ Hakkında Bir Soru

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Fatih54
    Fatih54's avatar
    Kayıt Tarihi: 16/Ağustos/2012
    Erkek

    C++ görsel bir dil değil bunu biliyoruz ancak C++ ile uygulama geliştirenler nasıl button ların vb. yerini buluyor. Mesela sanırım CreateWindow api si ile Button oluşturuluyor fakat bunun yerini deneyerek mi buluyorlar?.

    Bir de Visual Studio 2010 C++ Express test ederken C++ CLR ya da MFC tam hatırlamıyorum bunu bir proje tipi gördüm. Açtığımda ise karşıma görsel C++ çıktı.

    Bu yine Microsoft un Framework gibi yaptığı bir altyapı mı?

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

    Genel kabul gören yöntem DialogBox yöntemidir. Visual studio içinde gelen resource editör ya da harici bir resource editor (resedit gibi) ile formu visual basic formu hazırlar gibi hazırlarsın, bunu kaydettiğinde rc uzantılı bir text dosyası çıkar. Hangi kontrolün nerde olduğu gibi bilgiler bu dosyada yazar, derlenmiş hali res dir ve exe içinde genelde .rsrc sectionunda bulunur. 

    CreateWindow yöntemi,  MS tarafından dahi kullanılmayan altseviye, gereksiz ve çok daha zor bir yöntem. DialogBox yönteminde ise, mesaj döngüsünü de siz oluşturmazsınız, ayrıca sadece ilgilendiğiniz mesajlar DialogProc fonksiyonuna gelir ve handle edersiniz. Yaklaşık 20-25 satırda, basit bir form uygulaması iskeleti yazılabilir (form üzerindeki bir butona basıldığında mesaj kutusunda merhaba dünya yazan bir program).

    MFC de kendi içinde bu yöntemi kullanır ancak MFC tüm windows apilerini sarmalayan OO bir class library, MFC ile yazdığınız programda WinMain fonksiyonu dahi bulunmaz. MessageBox gibi apilerin overloaded versiyonları bulunur. Görsel programlamayı kolaylaştırır ama pek tutulduğu söylenemez.

    VCL bir başka alternatif, delphi ve C++ builder'ın kullandığı library. C++ için en kolay ve kullanışlı olanı budur, ancak büyük firmalar genellikle visual studio ve DialogBox yöntemini tercih ediyor.

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Fatih54
    Fatih54's avatar
    Kayıt Tarihi: 16/Ağustos/2012
    Erkek
    Tugberk bunu yazdı

    Genel kabul gören yöntem DialogBox yöntemidir. Visual studio içinde gelen resource editör ya da harici bir resource editor (resedit gibi) ile formu visual basic formu hazırlar gibi hazırlarsın, bunu kaydettiğinde rc uzantılı bir text dosyası çıkar. Hangi kontrolün nerde olduğu gibi bilgiler bu dosyada yazar, derlenmiş hali res dir ve exe içinde genelde .rsrc sectionunda bulunur. 

    CreateWindow yöntemi,  MS tarafından dahi kullanılmayan altseviye, gereksiz ve çok daha zor bir yöntem. DialogBox yönteminde ise, mesaj döngüsünü de siz oluşturmazsınız, ayrıca sadece ilgilendiğiniz mesajlar DialogProc fonksiyonuna gelir ve handle edersiniz. Yaklaşık 20-25 satırda, basit bir form uygulaması iskeleti yazılabilir (form üzerindeki bir butona basıldığında mesaj kutusunda merhaba dünya yazan bir program).

    MFC de kendi içinde bu yöntemi kullanır ancak MFC tüm windows apilerini sarmalayan OO bir class library, MFC ile yazdığınız programda WinMain fonksiyonu dahi bulunmaz. MessageBox gibi apilerin overloaded versiyonları bulunur. Görsel programlamayı kolaylaştırır ama pek tutulduğu söylenemez.

    VCL bir başka alternatif, delphi ve C++ builder'ın kullandığı library. C++ için en kolay ve kullanışlı olanı budur, ancak büyük firmalar genellikle visual studio ve DialogBox yöntemini tercih ediyor.

    Bu güzel cevabın için teşekkür ediyorum.

    Sana iki sorum daha olacak: Klavye tuşuna basıldığında değer döndüren bir api var mı? (Getasynckeystate dışında). Bir de Gorc rc derleyici kullanılabilir mi?. Amacım Visual Basic ile bir uygulamanın resource bölümündeki String Table ları değiştirmek. Bunu Gorc ve Reshacker(Komut Satırı) kullanarak başardım ancak ne kadar sağlıklı olur bu?

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

    Form aktifken her hangi bir tuşa basılırsa forma WM_KEYDOWN mesajı gider, tuşu istediğin gibi okuyabilirsin. Sistem genelinde basılan tuşları dinlemek istiyorsan hook etmek zorundasın, SetWindowsHookEx i WH_KEYBOARD_LL ile çağırarak bunu yapabilirsin.

    Derlenmiş bir programın resource larını değiştirmek için Reshack kullanışlı bir program, kendin yazmıyorsan programı yapacak başka birşey yok zaten. 

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    Arayüz olayına pek girmedim ama qt'e bi bak derim.


    :)
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Fatih54
    Fatih54's avatar
    Kayıt Tarihi: 16/Ağustos/2012
    Erkek
    Tugberk bunu yazdı

    Form aktifken her hangi bir tuşa basılırsa forma WM_KEYDOWN mesajı gider, tuşu istediğin gibi okuyabilirsin. Sistem genelinde basılan tuşları dinlemek istiyorsan hook etmek zorundasın, SetWindowsHookEx i WH_KEYBOARD_LL ile çağırarak bunu yapabilirsin.

    Derlenmiş bir programın resource larını değiştirmek için Reshack kullanışlı bir program, kendin yazmıyorsan programı yapacak başka birşey yok zaten. 

    Aslında şöyle bir yöntem var programın son offsetine seek ile geçip oraya ilgili bilgiler yazılabiliyor ancak bu biraz kullanışsız.
    Gorc ve Resource Hacker ile Visual Basic de başka bir uygulamanın resource bölümünü değiştirilebildim.

    Hook olayını biraz daha derin araştırayım o zaman ben.
    --
    Son olarak: Windows Sisteminde Api'ler kullanılıyor. Fakat Linux ta bu olay nasıl?

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

    Linuxda KDE ortamı Qt yi kullanır, Gnome ise Gtk+ kullanır. Ancak sonuçta X11 çalıştığı için grafikler tam doğru görünmese de Gtk+ ile yazılan KDE de Qt ile yazılan Gnome da çalışır.

    Ben Qt hiç kullanmadım, ancak sadece görsellik ile ilgili değil network a kadar uzanan koca bir framework, bunun yanında birçok sistemde çalışıyor.

    Gtk+ yı özellikle son bir sene içinde çok kullandım, Qt kadar basit olmasa da oldukça güzel.

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Fatih54
    Fatih54's avatar
    Kayıt Tarihi: 16/Ağustos/2012
    Erkek
    wasd bunu yazdı

    Arayüz olayına pek girmedim ama qt'e bi bak derim.

    QT de çalıştığı yerde QT Altyapısı istiyor diye biliyorum.
    Ama qt çok güzel bir alternatif, özellikle Nokia satın aldıktan sonra çok gelişti. Yaptığın tek uygulama linux,symbian ve windows ta çalışabiliyor.

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wasd
    wasd's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    Fatih54 bunu yazdı
    wasd bunu yazdı

    Arayüz olayına pek girmedim ama qt'e bi bak derim.

    QT de çalıştığı yerde QT Altyapısı istiyor diye biliyorum.
    Ama qt çok güzel bir alternatif, özellikle Nokia satın aldıktan sonra çok gelişti. Yaptığın tek uygulama linux,symbian ve windows ta çalışabiliyor.

    QT altyapısından kastın ne? Sen qt ile arayüz tasarlamak için qt sdksını falan kuruyorsun ancak çalışması gereken makinada qt yüklü olması gerekmiyor(diye biliyorum).


    :)
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Fatih54
    Fatih54's avatar
    Kayıt Tarihi: 16/Ağustos/2012
    Erkek
    wasd bunu yazdı
    Fatih54 bunu yazdı
    wasd bunu yazdı

    Arayüz olayına pek girmedim ama qt'e bi bak derim.

    QT de çalıştığı yerde QT Altyapısı istiyor diye biliyorum.
    Ama qt çok güzel bir alternatif, özellikle Nokia satın aldıktan sonra çok gelişti. Yaptığın tek uygulama linux,symbian ve windows ta çalışabiliyor.

    QT altyapısından kastın ne? Sen qt ile arayüz tasarlamak için qt sdksını falan kuruyorsun ancak çalışması gereken makinada qt yüklü olması gerekmiyor(diye biliyorum).

    Yapılan programın çalıştığı makinede QT dll vb. kayıtlı olması gerekiyor diye biliyorum.

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nessaj
    nessaj's avatar
    Kayıt Tarihi: 03/Mayıs/2010
    Erkek
    Fatih54 bunu yazdı
    wasd bunu yazdı
    Fatih54 bunu yazdı
    wasd bunu yazdı

    Arayüz olayına pek girmedim ama qt'e bi bak derim.

    QT de çalıştığı yerde QT Altyapısı istiyor diye biliyorum.
    Ama qt çok güzel bir alternatif, özellikle Nokia satın aldıktan sonra çok gelişti. Yaptığın tek uygulama linux,symbian ve windows ta çalışabiliyor.

    QT altyapısından kastın ne? Sen qt ile arayüz tasarlamak için qt sdksını falan kuruyorsun ancak çalışması gereken makinada qt yüklü olması gerekmiyor(diye biliyorum).

    Yapılan programın çalıştığı makinede QT dll vb. kayıtlı olması gerekiyor diye biliyorum.

    bir kaç dll ekleniyor uygulamaya sadece. onun dışna birşeye ihtiyacı olmuyor

Toplam Hit: 1746 Toplam Mesaj: 13