Jenis aplikasi desktop Windows C++

Aplikasi desktop di C++ adalah aplikasi asli yang dapat mengakses set lengkap API Windows, dan berjalan di jendela atau di konsol sistem. Aplikasi desktop di C++ dapat berjalan pada Windows XP melalui Windows 11 (meskipun Windows XP tidak lagi didukung secara resmi dan ada banyak API Windows baru sejak saat itu).

Aplikasi desktop apa pun di C++ dapat menggunakan kelas dan fungsi C Runtime (CRT) dan Pustaka Standar, objek COM, dan fungsi Windows publik, yang secara kolektif dikenal sebagai WINDOWS API. Untuk pengenalan aplikasi desktop Windows di C++, lihat Mulai menggunakan Win32 dan C++.

Ada beberapa kategori luas aplikasi Windows yang dapat Anda buat dengan C++, dijelaskan di bawah ini. Masing-masing memiliki model pemrograman dan set pustaka khusus Windows sendiri. Pustaka standar C++ dan pustaka C++ pihak ketiga dapat digunakan di salah satunya.

Untuk dokumentasi tentang platform Windows itu sendiri, lihat dokumentasi Windows.

Aplikasi klien desktop asli

Aplikasi klien desktop asli, atau aplikasi Win32, adalah aplikasi desktop Windows yang ditulis dalam C atau C++ yang menggunakan API Windows C asli atau API Model Objek Komponen (COM) CRT dan API Pustaka Standar, dan pustaka pihak ke-3. Aplikasi Win32 yang berjalan di jendela mengharuskan pengembang untuk menangani pesan Windows di dalam fungsi prosedur Windows. Terlepas dari namanya, aplikasi Win32 dapat dikompilasi sebagai biner 32-bit (x86) atau 64-bit (x64). Di Ide Visual Studio, istilah x86 dan Win32 identik.

Aplikasi baris perintah (konsol)

Aplikasi konsol C++ berjalan dari baris perintah di jendela konsol dan hanya dapat menampilkan output teks.

Aplikasi UWP

Platform Windows Universal (UWP) adalah Windows API modern. Aplikasi UWP berjalan pada Windows 11, Windows 10, XBox, Windows Telepon, Surface Hub, dan perangkat lainnya. Aplikasi UWP menggunakan XAML untuk antarmuka pengguna, dan sepenuhnya mendukung sentuhan. Aplikasi desktop berbeda dari aplikasi Platform Windows Universal (UWP).

Dukungan C++ asli untuk UWP terdiri dari C++/CX, dialek C++ dengan ekstensi sintaksis, atau Windows Runtime Library (WRL), yang didasarkan pada C++ dan COM standar. C++/CX dan WRL masih didukung, tetapi tidak direkomendasikan untuk pengembangan baru.

Untuk proyek baru, kami merekomendasikan C++/WinRT, yang sepenuhnya didasarkan pada C++ standar dan memberikan performa yang lebih cepat.

Aplikasi atau komponen C++/CLI menggunakan ekstensi ke sintaks C++ (seperti yang diizinkan oleh C++ Standard) untuk mengaktifkan interaksi antara .NET dan kode C++asli. Aplikasi C++/CLI dapat memiliki bagian yang berjalan secara asli dan bagian yang berjalan pada .NET Framework dengan akses ke Pustaka Kelas Dasar .NET. C++/CLI adalah opsi pilihan ketika Anda memiliki kode C++ asli yang perlu bekerja dengan kode yang ditulis dalam C# atau Visual Basic. Ini ditujukan untuk digunakan dalam DLL .NET daripada dalam kode antarmuka pengguna.

Jembatan Desktop

Di Windows 10 dan yang lebih baru, Anda dapat mengemas aplikasi desktop atau objek COM yang ada sebagai aplikasi UWP. Ini dapat menggunakan fitur UWP seperti sentuhan, atau memanggil API dari set Windows API modern. Anda juga dapat menambahkan aplikasi UWP ke solusi desktop di Visual Studio, mengemasnya bersama-sama dalam satu paket, dan menggunakan API Windows untuk berkomunikasi di antara mereka.

Visual Studio 2017 versi 15.4 dan yang lebih baru memungkinkan Anda membuat Proyek Paket Aplikasi Windows untuk sangat menyederhanakan pekerjaan pengemasan aplikasi desktop Yang ada. Beberapa batasan berlaku untuk panggilan registri atau API yang dapat digunakan aplikasi desktop Anda. Namun, dalam banyak kasus Anda dapat membuat jalur kode alternatif untuk mencapai fungsionalitas serupa saat berjalan dalam paket aplikasi.

C++ atau .NET?

Secara umum, pemrograman .NET di C# kurang kompleks, kurang rawan kesalahan, dan memiliki API berorientasi objek yang lebih modern daripada Win32 atau MFC. Dalam kebanyakan kasus, performanya lebih dari memadai.

.NET menampilkan Windows Presentation Foundation (WPF) untuk grafis yang kaya, dan Anda dapat menggunakan Win32 dan Windows Runtime API modern. Sebagai aturan umum, sebaiknya gunakan C++ untuk aplikasi desktop saat Anda memerlukan:

  • kontrol yang tepat atas penggunaan memori
  • perekonomian terutas dalam konsumsi daya
  • penggunaan GPU untuk komputasi umum
  • akses ke DirectX
  • penggunaan pustaka C++ standar yang berat

Anda juga dapat menggabungkan daya dan efisiensi C++ dengan pemrograman .NET. Anda dapat membuat antarmuka pengguna di C# dan menggunakan C++/CLI untuk memungkinkan aplikasi menggunakan pustaka C++ asli.

Permainan

Game DirectX dapat berjalan di PC atau Xbox.

Klien database SQL Server

Untuk mengakses database SQL Server dari kode asli, gunakan ODBC atau OLE DB.

Pengandar perangkat Windows

Driver adalah komponen tingkat rendah yang membuat data dari perangkat keras dapat diakses oleh aplikasi dan komponen sistem operasi lainnya.

Layanan Windows

Layanan Windows adalah program yang dapat berjalan di latar belakang dengan sedikit atau tanpa interaksi pengguna. Program-program ini disebut daemon pada sistem UNIX.

  • Untuk informasi selengkapnya, lihat Layanan.

COM

Model Objek Komponen (COM) adalah spesifikasi yang memungkinkan program yang ditulis dalam bahasa yang berbeda untuk beroperasi satu sama lain.

Banyak komponen Windows diimplementasikan sebagai objek COM dan mengikuti aturan COM standar untuk pembuatan objek, penemuan antarmuka, dan penghancuran objek. Menggunakan objek COM dari aplikasi desktop C++ relatif mudah, tetapi menulis objek COM Anda sendiri lebih canggih.

Pustaka Templat Aktif (ATL) menyediakan makro dan fungsi pembantu yang menyederhanakan pengembangan COM. Untuk informasi selengkapnya, lihat komponen desktop ATL COM.

MFC

Aplikasi MFC adalah aplikasi desktop Windows yang menggunakan Kelas Microsoft Foundation untuk membuat antarmuka pengguna. Aplikasi MFC juga dapat menggunakan komponen COM dan API CRT dan Pustaka Standar.

MFC menyediakan pembungkus berorientasi objek C++ tipis di atas perulangan pesan jendela dan API Windows. MFC adalah pilihan default untuk aplikasi—terutama aplikasi jenis perusahaan—yang memiliki banyak kontrol antarmuka pengguna atau kontrol pengguna kustom.

MFC menyediakan kelas pembantu yang nyaman untuk manajemen jendela, serialisasi, manipulasi teks, pencetakan, dan elemen antarmuka pengguna modern seperti pita. Agar efektif dengan MFC, Anda harus terbiasa dengan Win32.

SDK, pustaka, dan file header

Visual Studio menyertakan Pustaka Runtime C (CRT), Pustaka Standar C++, dan pustaka khusus Microsoft lainnya. Sebagian besar folder yang berisi file header untuk pustaka ini terletak di direktori penginstalan Visual Studio di bawah folder \VC\ (misalnya, C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.39.33519\include\). File header Windows dan CRT ditemukan di folder penginstalan Windows SDK (misalnya, C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\)

Manajer paket vcpkg memungkinkan Anda menginstal ratusan pustaka sumber terbuka pihak ketiga dengan mudah untuk Windows. Untuk informasi selengkapnya, lihat vcpkg.

Pustaka Microsoft meliputi:

  • Microsoft Foundation Classes (MFC): Kerangka kerja berorientasi objek untuk membuat program Windows tradisional—terutama aplikasi perusahaan—yang memiliki antarmuka pengguna kaya yang menampilkan tombol, kotak daftar, tampilan pohon, dan kontrol lainnya. Untuk informasi selengkapnya, lihat Aplikasi Desktop MFC.

  • Pustaka Templat Aktif (ATL): Pustaka pembantu yang kuat untuk membuat komponen COM. Untuk informasi selengkapnya, lihat Komponen Desktop ATL COM.

  • C++ AMP (C++ Accelerated Massive Parallelism): Pustaka yang memungkinkan pekerjaan komputasi umum berkinerja tinggi pada GPU. Untuk informasi selengkapnya, lihat C++ AMP (C++ Accelerated Massive Parallelism).

  • Runtime Konkurensi: Pustaka yang menyederhanakan pekerjaan pemrograman paralel dan asinkron untuk perangkat multicore dan banyak inti. Untuk informasi selengkapnya, lihat Konkurensi Runtime.

Banyak skenario pemrograman Windows juga memerlukan Windows SDK, yang mencakup file header yang memungkinkan akses ke komponen sistem operasi Windows. Secara default, Visual Studio menginstal Windows SDK sebagai komponen beban kerja C++ Desktop, yang memungkinkan pengembangan aplikasi Universal Windows. Untuk mengembangkan aplikasi UWP, Anda memerlukan Windows 10 atau versi Windows SDK yang lebih baru.

  • Untuk informasi selengkapnya, dan tautan unduhan, lihat Windows SDK.
  • Untuk informasi selengkapnya tentang Windows SDK untuk versi Windows yang lebih lama, lihat arsip Windows SDK.

Lokasi default untuk semua versi Windows SDK yang Anda instal adalah: Program Files (x86)\Windows Kits.

Alat Pengembangan

Visual Studio mencakup debugger yang kuat untuk kode asli, alat analisis statis, alat penelusuran kesalahan grafis, editor kode berperan lengkap, dukungan untuk pengujian unit, dan banyak alat dan utilitas lainnya.

Di bagian ini

Tautan Deskripsi
Panduan: Membuat aplikasi desktop Windows (C++) Buat aplikasi desktop Windows asli.
Cara: Menggunakan Windows SDK di aplikasi desktop Windows Berisi langkah-langkah untuk menyiapkan proyek Anda untuk dibangun menggunakan Windows SDK.
Panduan: Membuat program C++ standar Membuat aplikasi konsol Windows.
Panduan: Membuat kalkulator konsol di C++ Buat aplikasi konsol Windows sederhana. Aplikasi konsol Win32 (atau Win64) tidak memiliki jendela sendiri dan tidak ada perulangan pesan. Ini berjalan di jendela konsol, dan input dan output ditangani melalui baris perintah.
Menyebarkan aplikasi desktop asli Menyebarkan aplikasi asli di Windows.
Panduan: Membuat dan menggunakan pustaka statis Cara membuat .lib file biner.
Wisaya Desktop Windows Gunakan wizard untuk membuat proyek Windows baru.
Active Template Library (ATL) Gunakan pustaka ATL untuk membuat komponen COM di C++.
Kelas Bersama ATL dan MFC Gunakan kelas seperti CString yang dibagikan di ATL dan MFC.
Kelas Microsoft Foundation (MFC) Menggunakan MFC untuk membuat aplikasi Windows besar atau kecil dengan dialog dan kontrol
Akses data OLE DB dan ODBC
Teks dan string Berbagai jenis string di Windows.
Bekerja dengan file sumber daya Cara menambahkan gambar, ikon, tabel string, dan sumber daya lainnya ke aplikasi desktop.
Sumber daya untuk membuat game menggunakan DirectX (C++) Tautan ke konten untuk membuat game di C++.
Judul Deskripsi
Pengembangan Windows Berisi informasi tentang WINDOWS API dan COM. (Beberapa API Windows dan DLL pihak ketiga diimplementasikan sebagai objek COM.)
Hilo: Mengembangkan aplikasi C++ untuk Windows 7 Menjelaskan cara membuat aplikasi desktop Windows klien kaya yang menggunakan Animasi Windows dan Direct2D untuk membuat antarmuka pengguna berbasis carousel. Tutorial ini belum diperbarui sejak Windows 7, tetapi masih memberikan pengenalan menyeluruh untuk pemrograman Win32.
Pengembangan .NET dengan C++/CLI Buat pembungkus untuk pustaka C++ asli yang memungkinkannya untuk berkomunikasi dengan aplikasi dan komponen .NET.
Ekstensi komponen untuk .NET dan UWP Referensi untuk elemen sintaksis yang dibagikan oleh C++/CX dan C++/CLI.
Aplikasi Universal Windows (C++) Tulis aplikasi UWP menggunakan C++/CX atau Windows Runtime Template Library (WRL).
Atribut C++ untuk COM dan .NET Atribut nonstandar untuk pemrograman khusus Windows menggunakan .NET atau COM.

Lihat juga

C++ di Visual Studio