PDA

Tam Sürümünü Görmek İçin : C++ Windows Uygulaması


Barcoder
16/06/2007, 19:14
c++ ile ilgili kitapların ve ebook ların tümünde konsol uygulamaları geliştiriliyor peki windows yazılımı geliştirmek için kullanacağımız fonksiyonlar bu kitaplarda(*) anlatılıyor mu ? anlatılmıyorsa nasıl bu tür uygulamalara geçiş yapacağız ?

(*) Robert Lafore - Nesne Yönelimli C++ Programlama Klavuzu


Akın Öcal
16/06/2007, 23:20
Dil ogreten kitaplarda anlatilmaz genelde bazi kitaplarda sadece anahtar sozcukler verilir.

Direk C ile Windows API ile gelistirebilirsin, baslangicta aci veriyor fakat alistiktan sonra bana bazi noktalarda MFC den daha kolay geliyor ozellikle manuel mesaj islemesi rahat oluyor.

C++ ile GUI li uygulama gelistirmek icin belli kütüphaneler mevcttur. En onde geleni Microsoft un MFC kütüphaneleridir ( Sadece GUI ile sinirli degil tonlarca class makro vs.. ile dolu kocaman bir framework)

Windows üstüne alternatif Borland C++ Builder ile gelen VCL olabilir

Cross platform olarak ise :

QT : KDE+Win32
GTK+ : Gnome+Win32

Bunun disinda Windows icin WinAPI++ gibi adlarla bircok WindowsAPI wrapper da mevcut.

MFC ye girmek icin literatür kitap Jeff Prosise - Windows Programming with MFC dir

Windows API temel bilgisi gereklidir , onun icin de MS Press Jeff Ritcher i literatür kitaptir.

hgedek
17/06/2007, 23:57
Tavsiye olarak QT önerebilirim.Hem kolay hemde zevkli.

Barcoder
18/06/2007, 12:53
QT için C++ ın haricinde başka bir şey öğrenmek gerekiyormu? Yani dil haricinde farklı bilgiler..?

kiyas
18/06/2007, 14:43
http://qt.comu.edu.tr/
Qt kodlarını öğrenmen gerekiyor c++ kodlarına yakın yukardaki adreste başlangıç için hersey var...koaly gele.

khan
18/06/2007, 19:39
windows yazılımı dendi mi; konsol programları da windows yazılımıdır.

Flagrant
19/06/2007, 11:47
sanirim c++da konsol uygulamalari gelistirdin ve gorsel arayuzler yapmak istiyorsun. Bu durum icin piyasada c++ kullanan sirketlerin tercihi genelde MFC. Dunya capinda da cok fazla kullanicisi var ama yavas yavas .NET ve java mfc nin yerini almaya basladi. Eger ileri de makineler yakin programlar yapmak istiyorsan MFC ile devam etmeni oneririm(bu alanda hala rakipsiz) ama eger is cozumleri, database uygulamalari tarzi seyler yapmak istiyorsan java veya .NET ile devam etmeni oneririm. Mesela piyasadaki elektronik yazilim sirketleri(mesela askeri yazilim yapanlar, veya makinelere yazilim yapanlar, veya simulasyon tarzi seyler yapanlar) cok buyuk oranda c++ ve gerektiginde MFC kullaniyor. Ote yandan gunumuzde bankacilik uygulamalari gibi buyuk capli hem internetin hem makinelerin(mesela bankamatikler), hem masaustu uygulamalarinin ayni sistem uzerinden yapildigi projelerin tamaminda ya java ya .NET kullaniliyor. Bu sebebten ileride yapacagin ise yonelik bir seyler secmeni oneririm. Eger makineye yakin isler yapacaksan MFC, eger daha "high level" yazilimlar yapacaksan .NET veya Java diyorum.

Barcoder
19/06/2007, 13:38
peki visual c++ a ne dersiniz?? görsel arayüz için

Flagrant
19/06/2007, 13:47
visual c++ zaten mfc olmuyor mu? Ben mi yanlis biliyorum?

Barcoder
19/06/2007, 13:51
öylemi :D kusura bakma terimleri henüz tamamen bilmiyorum :) peki vc++ da çok fazla ,farklı kod tipleri var mı standart c++ dan

Akın Öcal
20/06/2007, 02:12
öylemi :D kusura bakma terimleri henüz tamamen bilmiyorum :) peki vc++ da çok fazla ,farklı kod tipleri var mı standart c++ dan

Microsoft C/C++ kütüphaneleri zaten standarttan biraz uzaktir , fakat temel Windows API bilmeden MFC girmek cok verimli olmayacaktir , sirf ansi yazmissan kafadan windef.h daki typedefler , calling conventionlar vsller le baslayacaksin . Kaan Aslan in WinAPI ve MFC ders notlarini siddet le tavsiye ediyorum

Akın Öcal
20/06/2007, 02:22
sanirim c++da konsol uygulamalari gelistirdin ve gorsel arayuzler yapmak istiyorsun. Bu durum icin piyasada c++ kullanan sirketlerin tercihi genelde MFC. Dunya capinda da cok fazla kullanicisi var ama yavas yavas .NET ve java mfc nin yerini almaya basladi. Eger ileri de makineler yakin programlar yapmak istiyorsan MFC ile devam etmeni oneririm(bu alanda hala rakipsiz) ama eger is cozumleri, database uygulamalari tarzi seyler yapmak istiyorsan java veya .NET ile devam etmeni oneririm. Mesela piyasadaki elektronik yazilim sirketleri(mesela askeri yazilim yapanlar, veya makinelere yazilim yapanlar, veya simulasyon tarzi seyler yapanlar) cok buyuk oranda c++ ve gerektiginde MFC kullaniyor. Ote yandan gunumuzde bankacilik uygulamalari gibi buyuk capli hem internetin hem makinelerin(mesela bankamatikler), hem masaustu uygulamalarinin ayni sistem uzerinden yapildigi projelerin tamaminda ya java ya .NET kullaniliyor. Bu sebebten ileride yapacagin ise yonelik bir seyler secmeni oneririm. Eger makineye yakin isler yapacaksan MFC, eger daha "high level" yazilimlar yapacaksan .NET veya Java diyorum.


Bugüne kadar Türk forumlarinda gordugum en bilincli yazilardan biri , fakat uygulama katmaninda C/C++ hala ABD İngiltere İsrail de daha fazla oldugunu soyleyebilirim. Neye gore soyluyorum : 3 ülkeye de firma/sahislara freelancer olarak is yapiyorum , lisans öğrenimi bitirince California ya gidecegim icin belli bir süredir Monster, Dice takip ediyorum , Windows DDK ve Platform SDK discussion grouplari nerdeyse saat basi takip ediyorum, ozetle sunu soyleyebilirim halen MFC COM Active DCOM COM+ acik ara onde gibi bir izlenimim var. Basit bir database yazilimi bile olsa C den yapma taraftariyim sahsen , cok basit bir is ise .Net/Java lara bulasmadan perl/vbscript ile scripting yapmayi ama en azindan WinAPI calllar yapmayi tercih ederim.

Fakat Türkiye'de bu durum gecerli degil , herkes benim gibi sistem programcisi olsun demiyorum , uygulamacilara da ihtiyacimiz var ama kotu olan biz de 1"bilinc" bile yok

Flagrant
20/06/2007, 09:02
Tesekkurler Akin. Ben bir iki sey eklemek istiyorum Java/.NET kullanimiyla ilgili. Mesela bir sirket icin yazilim dusunelim. Sirkettekiler masaustunden bu sisteme erisecekler, kullanicilar webden ayni sisteme erisecekler hatta kullanicilar ister linux ister windows kullanacak. Sirket sahibi istedigi zaman cep telefonundan erisecek ayni sisteme ... vs. Boyle bir projeyi c/c++ da yapma sansin var mi? Bana kalirsa cok zorlama olur. Gosterdigin efor aldigin performanstan fazla olabilir. Zaten bildigim kadariyla da bu tarz buyuk projelerin hepsinde java/.net kullaniliyor. Senin bahsettigin c/c++ kullanilan uygulamalar ne tarz uygulamalar ?


Not: Akin PM ini kontrol edersen sevinirim.

Akın Öcal
20/06/2007, 09:51
Tesekkurler Akin. Ben bir iki sey eklemek istiyorum Java/.NET kullanimiyla ilgili. Mesela bir sirket icin yazilim dusunelim. Sirkettekiler masaustunden bu sisteme erisecekler, kullanicilar webden ayni sisteme erisecekler hatta kullanicilar ister linux ister windows kullanacak. Sirket sahibi istedigi zaman cep telefonundan erisecek ayni sisteme ... vs. Boyle bir projeyi c/c++ da yapma sansin var mi? Bana kalirsa cok zorlama olur. Gosterdigin efor aldigin performanstan fazla olabilir. Zaten bildigim kadariyla da bu tarz buyuk projelerin hepsinde java/.net kullaniliyor. Senin bahsettigin c/c++ kullanilan uygulamalar ne tarz uygulamalar ?


Not: Akin PM ini kontrol edersen sevinirim.

Zaten bu senin dediginin altinda yatan mantik en büyük yanilgi , neymis .net fw gib j2ee güclü hazir kütüphaneler yokmus , c/c++ da farkli olan bunlarin ortak bir cati altinda toplanmamis olmasi bir firma tarafindan , insanligin ortak mali , C/C++ programcisi dedigin ANSI bilip bunlari ilkkez iste ogrenen degildir ki zaten bu isler icin codebase i hazir olan kisidir. Benim bahsettigim uygulamalar device driverdan cgi yazmaya , cgi dan xml web sorgusu yapmaya ayni anda sqlserver/oracle/mysql kullanmay kadar web scripting ve local scripting disindaki tüm uygulamalar. C 1970 lerden beri var , C ile implement edilmemis bir algoritma bir uygulama yoksa baska hic bir dilde yoktur denebilir nerdeyse - hardware description language- haric, o yüzden insanligin assembllerlar sonrasi kodlarinin %90 ından fazlasini teskil ediyor C/C++. O yüzden benim gozumde tek bir framework var o da C/C++ kütüphaneleri , random bir middleware kurtdugunuz zaman sisteme developerlar icin .net ya da java classlari cikmasi her zaman olmaz fakat kesinlikle Lib Inc ve Src klasorlerini bulacaksinizdir , ornegin mysql sitesinde .net ve diger platformlar icin component supply ettig halde kurdugunuzda sadece C/C++ i gorursunuz. Codeproject e bakilmasini tavsiye ederim , C/C++ ile yapilan uygulamalar acisindan...

Flagrant
20/06/2007, 11:50
Akin yanlis anlasilma olmasin ben .NET/java da c/c++ dan daha guclu kutuphaneler var demek istemedim. Spesifik bir ornek uzerinden gittim. Mesela bir bankacilik uygulamasini goz onune alalim. Web, masaustu, bankamatik, cep tel... hepsi ayni database ulasiyor ayni sistemi kullaniyor. Bu tarz uygulamalar icin ben .net/java dedim. Ha sen diyosan ki bu tarz uygulamalar da c/c++ da yapilir hatta daha iyisi yapilir, o kadar c/c++ bilgim yok ama bildigim bir sey var ki Turkiyedeki herhangi bir bankanin alt yapisi c/c++ dan olusmuyor ve hepsi java/.net den olusuyor. Hangi uygulamalardan bahsettigini de bu yuzden sordum, yani yurtdisinda insanlar bu tarz buyuk uygulamalari da mi c/c++ kullanarak yapiyor, yoksa Turkiyedeki gibi .net/java mi kullaniliyor?

Akın Öcal
20/06/2007, 12:23
Alt yapidan kastina gore degisir , database üstüne yazacak modüller mi , yoksa diger sistem programlama etmenleri mi , benim demek istedigim web haric herseyi C/C++ ile yapabilecegin , yoksa koru korune .net java kullanilmamali soyledir boyledir demiyorum , yoksa kendi iclerinde gayet güzeller fakat benim hosuma gitmeyen sadece Türkiye'de bilincin yeterli olmamasi.

Kütüphane olayi sana yonelik degildi , genelde en cok soylenen sey C/C++ a karsi , bir WinAPI "helloworld" programinin bile (Pencereli) 100 satirdan fazla olmasi ( Hatta Charles Petzold bile bunu skandal olarak niteler) ve bununla mi ugrasilacagi tarzi yaklasima yonelikti , C/C++ in farki yatirim, sermaye istiyor ve dik bir ogrenme egrisine sahip , fakat oturttuktan sonra .net/java yazarmis gibi yazabiliyorsunuz, memory sisteminizi de oturttuysaniz tabi

Barcoder
20/06/2007, 15:04
WinAPI ye geçiş ne zaman olmalı peki? Örneğin benim api ye geçişim elimdeki kitabı bitirdikten sonra mı olmalı? Yani önce konsol uygulamalarını tamamlayıp, dilde tam bilgiye sahip olup daha sonra mı geçilmeli api ye?

Akın Öcal
21/06/2007, 07:04
Elindeki kitabin noldugunu bilmiyorum, ama C yi tam biliyorum demeden gecme Windows API ye, Kaan Aslan A'dan Z'ye C Klavuzu ya da Necati Ergin C Ders Notlarini tavsiye ederim, daha iyileri oldugnu sanmiyorum

Helu
24/06/2007, 01:22
Kitaplarda genelde temel bilgiler oluyor. Özellikle takılıp kaldığım yerlerde kitaplar bir işe yaramıyor. Böyle durumlarda sadece google ve ceviz türü yerli olmadı yabancı forum siteleri yardımcı olabiliyor.