Windows C++ masaüstü uygulama türleri
C++ dilindeki bir masaüstü uygulaması, windows API'lerinin tamamına erişebilen ve bir pencerede veya sistem konsolunda çalışan yerel bir uygulamadır. C++'taki masaüstü uygulamaları Windows XP'de Windows 11 aracılığıyla çalıştırılabilir (Windows XP artık resmi olarak desteklenmese de ve o zamandan beri birçok yeni Windows API'si vardır).
C++ içindeki herhangi bir masaüstü uygulaması C Çalışma Zamanı (CRT) ve Standart Kitaplık sınıflarını ve işlevlerini, COM nesnelerini ve toplu olarak Windows API'si olarak bilinen genel Windows işlevlerini kullanabilir. C++'da Windows masaüstü uygulamalarına giriş için bkz . Win32 ve C++'ı Kullanmaya Başlama.
Aşağıda açıklanan C++ ile oluşturabileceğiniz birçok geniş Windows uygulaması kategorisi vardır. Her birinin kendi programlama modeli ve Windows'a özgü kitaplıkları vardır. C++ standart kitaplığı ve üçüncü taraf C++ kitaplıkları bunlardan herhangi birinde kullanılabilir.
Windows platformunun kendisiyle ilgili belgeler için bkz . Windows belgeleri.
Yerel masaüstü istemci uygulamaları
Yerel masaüstü istemci uygulaması veya Win32 uygulaması, yerel Windows C API'leri veya Bileşen Nesne Modeli (COM) API'leri CRT ve Standart Kitaplık API'leri ve 3. taraf kitaplıkları kullanan C veya C++ dilinde yazılmış bir Windows masaüstü uygulamasıdır. Pencerede çalışan bir Win32 uygulaması, geliştiricinin windows yordam işlevi içinde Windows iletilerini işlemesini gerektirir. Ada rağmen, bir Win32 uygulaması 32 bit (x86) veya 64 bit (x64) ikili dosyası olarak derlenebilir. Visual Studio IDE'de x86 ve Win32 terimleri eş anlamlıdır.
- Geleneksel Windows C++ programlamasını kullanmaya başlamak için bkz . Win32 ve C++ ile Çalışmaya Başlama.
- Gelişmiş grafikler kullanan geleneksel bir C++ masaüstü uygulaması örneği için bkz . Hilo: Windows için C++ Uygulamaları Geliştirme.
Komut satırı (konsol) uygulamaları
C++ konsol uygulamaları bir konsol penceresindeki komut satırından çalışır ve yalnızca metin çıkışını görüntüleyebilir.
- Daha fazla bilgi için bkz . C++'da konsol hesaplayıcısı oluşturma.
UWP uygulamaları
Evrensel Windows Platformu (UWP), modern Windows API'dir. UWP uygulamaları Windows 11, Windows 10, XBox, Windows Phone, Surface Hub ve diğer cihazlarda çalışır. UWP uygulamaları kullanıcı arabirimi için XAML kullanır ve tamamen dokunmatik özelliklidir. Masaüstü uygulaması, Evrensel Windows Platformu (UWP) uygulamasından farklıdır.
- Masaüstü ve UWP uygulamaları hakkında daha fazla bilgi için bkz . Teknolojinizi seçme.
- UWP hakkında daha fazla bilgi için bkz. Evrensel Windows Platformu (UWP) uygulaması nedir ve Windows Evrensel Uygulamaları Kılavuzu.
UWP için özgün C++ desteği C++/CX, söz dizimi uzantılarına sahip bir C++ diyalektini veya standart C++ ve COM'u temel alan Windows Çalışma Zamanı Kitaplığı'nı (WRL) içerir. Hem C++/CX hem de WRL hala desteklenir, ancak yeni geliştirme için önerilmez.
Yeni projeler için, tamamen standart C++ tabanlı ve daha hızlı performans sağlayan C++/WinRT'yi öneririz.
C++/CLI uygulaması veya bileşeni, .NET ile yerel C++kod arasındaki etkileşimi etkinleştirmek için C++ söz diziminin uzantılarını (C++ Standardının izin verdiği şekilde) kullanır. C++/CLI uygulamasının yerel olarak çalışan bölümleri ve .NET Temel Sınıf Kitaplığı'na erişimi olan .NET Framework'te çalışan bölümleri olabilir. C# veya Visual Basic ile yazılmış kodla çalışması gereken yerel C++ kodunuz olduğunda C++/CLI tercih edilen seçenektir. Kullanıcı arabirimi kodu yerine .NET DLL'lerinde kullanılmak üzere tasarlanmıştır.
- Daha fazla bilgi için bkz . C++/CLI ile .NET Programlama (Visual C++).
Masaüstü Köprüsü
Windows 10 ve sonraki sürümlerde mevcut masaüstü uygulamanızı veya COM nesnenizi UWP uygulaması olarak paketleyebilirsiniz. Dokunma gibi UWP özelliklerini kullanabilir veya modern Windows API kümesinden API'leri çağırabilir. Ayrıca Visual Studio'daki bir masaüstü çözümüne UWP uygulaması ekleyebilir, bunları tek bir pakette paketleyebilir ve aralarında iletişim kurmak için Windows API'lerini kullanabilirsiniz.
Visual Studio 2017 sürüm 15.4 ve üzeri, mevcut masaüstü uygulamanızı paketleme işini büyük ölçüde basitleştirmek için bir Windows Uygulama Paketi Projesi oluşturmanıza olanak tanır. Masaüstü uygulamanızın kullanabileceği kayıt defteri çağrıları veya API'ler için birkaç kısıtlama geçerlidir. Ancak çoğu durumda, bir uygulama paketinde çalışırken benzer işlevler elde etmek için alternatif kod yolları oluşturabilirsiniz.
- Daha fazla bilgi için bkz. Masaüstü Köprüsü.
C++ mı yoksa .NET mi?
Genel olarak, C# dilinde .NET programlaması daha az karmaşıktır, daha az hataya açıktır ve Win32 veya MFC'den daha modern bir nesne odaklı API'ye sahiptir. Çoğu durumda performansı yeterliden fazladır.
.NET, zengin grafikler için Windows Presentation Foundation 'ı (WPF) içerir ve hem Win32 hem de modern Windows Çalışma Zamanı API'sini kullanabilirsiniz. Genel bir kural olarak, aşağıdaki durumlarda masaüstü uygulamaları için C++ kullanmanızı öneririz:
- bellek kullanımı üzerinde hassas denetim
- güç tüketiminde en yüksek ekonomi
- genel bilgi işlem için GPU kullanımı
- DirectX'e erişim
- standart C++ kitaplıklarının yoğun kullanımı
C++'ın gücünü ve verimliliğini .NET programlama ile birleştirmek de mümkündür. C# dilinde bir kullanıcı arabirimi oluşturabilir ve C++/CLI kullanarak uygulamanın yerel C++ kitaplıklarını kullanmasını sağlayabilirsiniz.
- Daha fazla bilgi için bkz . C++/CLI ile .NET Programlama.
Oyunlar
DirectX oyunları bilgisayarda veya Xbox'ta çalıştırılabilir.
- Daha fazla bilgi için bkz . DirectX Grafik ve Oyun.
SQL Server veritabanı istemcileri
SQL Server veritabanlarına yerel koddan erişmek için ODBC veya OLE DB kullanın.
- Daha fazla bilgi için bkz . SQL Server Yerel İstemcisi.
Windows cihaz sürücüleri
Sürücüler, donanım cihazlarından gelen verileri uygulamalar ve diğer işletim sistemi bileşenleri için erişilebilir hale getiren düşük düzeyli bileşenlerdir.
- Daha fazla bilgi için bkz . Windows Driver Kit (WDK).
Windows hizmetleri
Windows hizmeti , kullanıcı etkileşimi az veya hiç olmadan arka planda çalışabilen bir programdır. Bu programlar UNIX sistemlerinde daemon olarak adlandırılır.
- Daha fazla bilgi için bkz . Hizmetler.
COM
Bileşen Nesne Modeli (COM), farklı dillerde yazılmış programların birbiriyle birlikte çalışabilmesini sağlayan bir belirtimdir.
Birçok Windows bileşeni COM nesneleri olarak uygulanır ve nesne oluşturma, arabirim bulma ve nesne yok etme için standart COM kurallarına uyar. C++ masaüstü uygulamalarından COM nesnelerini kullanmak oldukça basittir, ancak kendi COM nesnenizi yazmak daha gelişmiştir.
Etkin Şablon Kitaplığı (ATL), COM geliştirmeyi basitleştiren makrolar ve yardımcı işlevler sağlar. Daha fazla bilgi için bkz . ATL COM masaüstü bileşenleri.
MFC
MFC uygulaması, kullanıcı arabirimini oluşturmak için Microsoft Foundation Sınıflarını kullanan bir Windows masaüstü uygulamasıdır. MFC uygulaması COM bileşenlerini ve CRT ile Standart Kitaplık API'lerini de kullanabilir.
MFC, pencere ileti döngüsü ve Windows API'leri üzerinde ince bir C++ nesne odaklı sarmalayıcı sağlar. MFC, birçok kullanıcı arabirimi denetimine veya özel kullanıcı denetimine sahip uygulamalar (özellikle kurumsal türdeki uygulamalar) için varsayılan seçenektir.
MFC, pencere yönetimi, serileştirme, metin işleme, yazdırma ve şerit gibi modern kullanıcı arabirimi öğeleri için kullanışlı yardımcı sınıflar sağlar. MFC ile etkili olmak için Win32 hakkında bilgi sahibi olmanız gerekir.
SDK'lar, kitaplıklar ve üst bilgi dosyaları
Visual Studio C Çalışma Zamanı Kitaplığı (CRT), C++ Standart Kitaplığı ve Microsoft'a özgü diğer kitaplıkları içerir. Bu kitaplıklar için üst bilgi dosyalarını içeren klasörlerin çoğu, \VC\ klasörünün altındaki Visual Studio yükleme dizininde bulunur (örneğin, C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.39.33519\include\
). Windows ve CRT üst bilgi dosyaları Windows SDK yükleme klasöründe bulunur (örneğin, C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\
)
vcpkg paket yöneticisi, Windows için yüzlerce üçüncü taraf açık kaynak kitaplığını rahatça yüklemenize olanak tanır. Daha fazla bilgi için bkz . vcpkg.
Microsoft kitaplıkları şunlardır:
Microsoft Foundation Classes (MFC): Geleneksel Windows programları ve özellikle de düğmeler, liste kutuları, ağaç görünümleri ve diğer denetimleri barındıran zengin kullanıcı arabirimlerine sahip kurumsal uygulamalar oluşturmaya yönelik nesne yönelimli bir çerçevedir. Daha fazla bilgi için bkz . MFC Masaüstü Uygulamaları.
Etkin Şablon Kitaplığı (ATL): COM bileşenleri oluşturmak için güçlü bir yardımcı kitaplık. Daha fazla bilgi için bkz . ATL COM Masaüstü Bileşenleri.
C++ AMP (C++ Accelerated Massive Parallelism): GPU üzerinde yüksek performanslı genel hesaplama işlerini etkinleştiren bir kitaplık. Daha fazla bilgi için bkz . C++ AMP (C++ Hızlandırılmış Yüksek Paralellik).
Eşzamanlılık Çalışma Zamanı: Birden fazla çekirdekli ve çok çekirdekli cihazlar için paralel ve zaman uyumsuz programlama işini basitleştiren bir kitaplık. Daha fazla bilgi için bkz . Eşzamanlılık Çalışma Zamanı.
Birçok Windows programlama senaryosunda ayrıca, Windows işletim sistemi bileşenlerine erişimi etkinleştiren başlık dosyalarını içeren Windows SDK gerekir. Varsayılan olarak Visual Studio, Evrensel Windows uygulamalarının geliştirilmesini sağlayan C++ Masaüstü iş yükünün bir bileşeni olarak Windows SDK'sını yükler. UWP uygulamaları geliştirmek için Windows SDK'sının Windows 10 veya sonraki bir sürümüne sahip olmanız gerekir.
- Daha fazla bilgi ve indirme bağlantısı için bkz . Windows SDK.
- Windows'un önceki sürümleri için Windows SDK'ları hakkında daha fazla bilgi için bkz . Windows SDK arşivi.
Yüklediğiniz windows SDK'sının tüm sürümleri için varsayılan konum: Program Files (x86)\Windows Kits
.
Geliştirme Araçları
Visual Studio yerel kod, statik çözümleme araçları, grafik hata ayıklama araçları, tam özellikli bir kod düzenleyicisi, birim testleri için destek ve diğer birçok araç ve yardımcı program için güçlü bir hata ayıklayıcı içerir.
- Daha fazla bilgi için bkz. Visual Studio ile geliştirmeye başlama ve Visual Studio'da C++ geliştirmeye genel bakış.
Bu bölümde
Bağlantı | Açıklama |
---|---|
İzlenecek yol: Windows masaüstü uygulamaları oluşturma (C++) | Yerel bir Windows masaüstü uygulaması oluşturun. |
Nasıl yapılır: Bir Windows masaüstü uygulamasında Windows SDK'sını kullanma | Projenizi Windows SDK'sını kullanarak derlemek üzere ayarlama adımlarını içerir. |
İzlenecek yol: Standart bir C++ programı oluşturma | Bir Windows konsol uygulaması oluşturun. |
İzlenecek yol: C++ ile konsol hesaplayıcısı oluşturma | Basit bir Windows konsol uygulaması oluşturun. Win32 (veya Win64) konsol uygulamasının kendi penceresi yoktur ve ileti döngüsü yoktur. Konsol penceresinde çalışır ve giriş ve çıkış komut satırı aracılığıyla işlenir. |
Yerel masaüstü uygulamaları dağıtma | Windows'da yerel uygulamalar dağıtma. |
İzlenecek yol: Statik kitaplık oluşturma ve kullanma | İkili dosya oluşturma .lib . |
Windows Masaüstü Sihirbazı | Sihirbazı kullanarak yeni Windows projeleri oluşturun. |
Etkin Şablon Kitaplığı (ATL) | C++ dilinde COM bileşenleri oluşturmak için ATL kitaplığını kullanın. |
ATL ve MFC Paylaşılan sınıfları | ATL ve MFC'de paylaşılan gibi CString sınıfları kullanın. |
Microsoft Foundation Sınıfları (MFC) | İletişim kutuları ve denetimlerle büyük veya küçük Windows uygulamaları oluşturmak için MFC kullanma |
Veri erişimi | OLE DB ve ODBC |
Metin ve dizeler | Windows'da çeşitli dize türleri. |
Kaynak dosyalarıyla çalışma | Masaüstü uygulamasına görüntü, simge, dize tablosu ve diğer kaynaklar ekleme. |
DirectX kullanarak oyun oluşturma kaynakları (C++) | C++ dilinde oyun oluşturmaya yönelik içeriğe bağlantılar. |
İlgili Makaleler
Ünvan | Açıklama |
---|---|
Windows geliştirme | Windows API ve COM hakkında bilgi içerir. (Bazı Windows API'leri ve üçüncü taraf DLL'leri COM nesneleri olarak uygulanır.) |
Hilo: Windows 7 için C++ uygulamaları geliştirme | Döngü tabanlı kullanıcı arabirimi oluşturmak için Windows Animasyonu ve Direct2D kullanan zengin istemci bir Windows masaüstü uygulamasının nasıl oluşturulacağını açıklar. Bu öğretici Windows 7'den beri güncelleştirilmedi, ancak yine de Win32 programlamaya kapsamlı bir giriş sağlar. |
C++/CLI ile .NET geliştirme | .NET uygulamaları ve bileşenleriyle iletişim kurmasını sağlayan yerel C++ kitaplıkları için sarmalayıcılar oluşturun. |
.NET ve UWP İçin bileşen uzantıları | C++/CX ve C++/CLI tarafından paylaşılan söz dizimi öğeleri için başvuru. |
Evrensel Windows uygulamaları (C++) | C++/CX veya Windows Çalışma Zamanı Şablon Kitaplığı (WRL) kullanarak UWP uygulamaları yazın. |
COM ve .NET için C++ öznitelikleri | .NET veya COM kullanan yalnızca Windows programlaması için standart olmayan öznitelikler. |