Přehled programování v C++ v systému Windows

existuje několik hlavních kategorií Windows aplikací, které můžete vytvořit pomocí jazyka C++. každá z nich má svůj vlastní programovací model a sadu Windows specifických knihoven, ale standardní knihovna c++ a knihovny c++ třetích stran lze použít v jakémkoli z nich.

tato část popisuje, jak použít Visual Studio a knihovny wrapperů MFC/ATL k vytvoření Windows programů. dokumentaci k Windows samotné platformě najdete v dokumentaci k Windows.

Aplikace příkazového řádku (konzoly)

Konzolové aplikace C++ jsou spouštěny z příkazového řádku v okně konzoly a mohou zobrazovat pouze výstupy textu. Další informace najdete v tématu Vytvoření kalkulačky konzoly v jazyce C++.

Nativní klientské aplikace pro stolní počítače

Nativní klientská aplikace pro stolní počítače je aplikace s oknem c nebo C++, která používá původní nativní Windows rozhraní API jazyka c nebo rozhraní API modelu COM (Component Object Model) pro přístup k operačnímu systému. Tato rozhraní API se sami píší převážně v C. Existuje více než jeden způsob, jak vytvořit nativní desktopovou aplikaci: můžete programovat přímo pomocí rozhraní Win32 API pomocí smyčky zpráv ve stylu jazyka C, která zpracovává události operačního systému. Nebo můžete programovat pomocí Microsoft Foundation Classes (MFC), lehce orientované objektové knihovny C++, která obaluje Win32. v porovnání s Univerzální platforma Windowsem (UWP) se nepovažuje žádný přístup, ale obě jsou pořád plně podporované a můžou mít miliony řádků kódu běžící na světě ještě dnes. aplikace Win32, která běží v okně, vyžaduje, aby vývojář pracoval explicitně s Windowsmi zprávami v rámci funkce Windows procedury. Bez ohledu na název může být aplikace Win32 kompilována jako 32 (x86) nebo 64-bit (x64) binární. v rozhraní IDE Visual Studio jsou výrazy x86 a Win32 synonymní.

chcete-li začít s tradičním programováním Windows C++, přečtěte si téma Začínáme s Win32 a C++. Až pochopíte prostředí Win32, bude snazší získat informace o desktopových aplikacích MFC. Příklad tradiční desktopové aplikace v jazyce C++, která používá sofistikovanou grafiku, naleznete v tématu Hilo: vývoj aplikací v jazyce c++ pro Windows.

C++ nebo .NET?

Obecně je programování .NET v jazyce C# méně složité, méně náchylné k chybám a má moderní rozhraní API orientované na objekty než Win32 nebo MFC. Ve většině případů je jeho výkon více než přiměřený. rozhraní .net nabízí Windows Presentation Foundation (WPF) pro bohatou grafiku a můžete využívat Win32 i moderní rozhraní prostředí Windows Runtime API. V rámci obecného pravidla doporučujeme použít C++ pro desktopové aplikace, když budete potřebovat:

  • přesná kontrola využití paměti
  • nejvyšší ekonomie spotřeby energie
  • využití GPU pro obecné výpočty
  • přístup k rozhraní DirectX
  • těžké použití standardních knihoven C++

Je také možné kombinovat výkon a efektivitu C++ pomocí programování .NET. V jazyce C# můžete vytvořit uživatelské rozhraní a pomocí jazyka C++/CLI povolit aplikaci využívat nativní knihovny C++. Další informace najdete v tématu programování .NET s C++/CLI.

Komponenty modelu COM

Component Object Model (com) je specifikace, která umožňuje programům napsaným v různých jazycích komunikovat mezi sebou. mnohé Windows komponenty jsou implementovány jako objekty modelu com a následují standardní pravidla modelu com pro vytváření objektů, zjišťování rozhraní a zničení objektů. Použití objektů COM z aplikací klasické pracovní plochy v jazyce C++ je poměrně jasné, ale psaní vlastního objektu COM je pokročilejší. Knihovna ATL (Active Template Library) poskytuje makra a pomocné funkce, které zjednodušují vývoj v modelu COM. Další informace naleznete v tématu komponenty ATL com Desktop.

aplikace Univerzální platforma Windows

Univerzální platforma Windows (UWP) je moderní rozhraní API pro Windows. aplikace UWP běží na jakémkoli Windows 10 nebo Windows 11 zařízení. Používají XAML pro uživatelské rozhraní a jsou plně dotykově zapnuté. další informace o UWP najdete v tématu co je aplikace Univerzální platforma Windows (UWP)? a průvodce pro Windows univerzálních aplikací.

původní podpora pro UWP v jazyce c++ se skládá z (1) c++/cx, dialektu c++ s rozšířeními syntaxe nebo (2) prostředí Windows Runtime knihovny (WRL), která je založená na standardu c++ a modelu COM. C++/CX i WRL jsou pořád podporované, ale nedoporučují se pro nový vývoj. Pro nové projekty doporučujeme /WinRT C++, který je zcela založený na standardu c++ a poskytuje rychlejší výkon.

Přemostění na desktop

v Windows 10 a novějších můžete zabalit stávající desktopovou aplikaci nebo objekt COM jako aplikaci UWP. může používat funkce UWP, jako je dotykové ovládání, nebo volat rozhraní api z moderní Windows sady rozhraní api. aplikaci UWP můžete také přidat do desktopového řešení v Visual Studio, zabalit je do jednoho balíčku a pomocí Windows rozhraní api komunikovat mezi nimi.

Visual Studio 2017 verze 15,4 a novější vám umožní vytvořit balíček Windows aplikace Project, aby se významně zjednodušila práce s balíčkem stávající desktopové aplikace. V případě volání registru nebo rozhraní API, které může vaše desktopová aplikace používat, platí několik omezení. V mnoha případech však můžete vytvořit alternativní cesty kódu pro dosažení podobných funkcí při spuštění v balíčku aplikace. další informace najdete v tématu Přemostění na desktop.

Hry

Hry DirectX můžete spustit na počítači nebo Xbox. Další informace najdete v tématu grafiky a hry DirectX.

klienti databáze SQL Server

chcete-li získat přístup k SQL Server databází z nativního kódu, použijte rozhraní ODBC nebo OLE DB. další informace najdete v tématu SQL Server Native Client.

Ovladače zařízení systému Windows

Ovladače jsou komponenty nízké úrovně, které vytvářejí data z hardwarových zařízení přístupných aplikacím a dalším součástem operačního systému. další informace najdete v tématu Windows Driver Kit (WDK).

Služby pro Windows

služba Windows je program, který může běžet na pozadí s malým nebo žádným zásahem uživatele. tyto programy se nazývají démoni v systémech systém UNIX. Další informace najdete v tématu služby.

Sady SDK, knihovny a hlavičkové soubory

Visual Studio zahrnuje knihovnu prostředí Runtime jazyka C (CRT), standardní knihovnu jazyka C++ a další knihovny specifické pro společnost Microsoft. většina složek zahrnutí, které obsahují hlavičkové soubory pro tyto knihovny, se nachází v instalačním adresáři Visual Studio ve složce \VC\. soubory hlaviček Windows a CRT najdete v instalační složce Windows SDK.

správce balíčků vcpkg umožňuje pohodlně nainstalovat stovky open source knihoven třetích stran pro Windows. Další informace najdete v tématu vcpkg.

Mezi knihovny Microsoftu patří:

  • Třídy knihovny MFC (Microsoft Foundation Classes): Objektově orientovaný rámec pro vytváření tradičních programů operačního systému Windows (zejména podnikových aplikací), které mají bohatá uživatelská rozhraní obsahující tlačítka, seznamy, stromová zobrazení a další ovládací prvky. Další informace naleznete v tématu MFC Desktop Applications.

  • Knihovna ATL (Active Template Library): Výkonné pomocné knihovny pro vytváření komponent modelu COM. Další informace naleznete v tématu komponenty ATL com Desktop.

  • Knihovna C++ AMP (C++ Accelerated Massive Parallelism): Knihovna, která umožňuje vysoce výkonné obecné výpočetní práce na GPU. další informace najdete v tématu C++ AMP (C++ Accelerated Massive Parallelism).

  • Modul Concurrency Runtime: Knihovna, která zjednodušuje práci paralelního a asynchronního programování pro vícejádrová a mnohojádrová zařízení. Další informace najdete v tématu Concurrency Runtime.

Mnoho programovacích scénářů pro Windows navíc také vyžaduje sadu Windows SDK obsahující soubory hlaviček, které umožňují přístup ke komponentám operačního systému Windows. ve výchozím nastavení Visual Studio nainstaluje Windows SDK jako součást úlohy prostředí C++ Desktop, která umožňuje vývoj univerzálních aplikací pro Windows. pro vývoj aplikací pro UWP potřebujete Windows 10 nebo novější verzi Windows SDK. další informace a odkaz ke stažení najdete v tématu Windows SDK. (další informace o sadách Windows sdk pro dřívější verze Windows najdete v archivu Windows SDK).

Program Files (x86) \ Windows sady jsou výchozí umístění pro všechny verze Windows SDK, které jste nainstalovali.

Jiné platformy, jako je například konzola Xbox a Azure mají své vlastní sady SDK, které budete pravděpodobně muset nainstalovat. Další informace naleznete ve středisku pro vývojáře DirectX a ve středisku pro vývojáře Azure.

Nástroje pro vývoj

Systém Visual Studio obsahuje výkonný ladicí program pro nativní kód, nástroje pro statickou analýzu, nástroje pro ladění grafiky, úplný editor kódu, podporu pro testování částí a mnoho dalších nástrojů a pomůcek. další informace najdete v tématu začínáme s vývojem pomocí Visual Studioa přehled vývoje v jazyce C++ v Visual Studio.

V této části

-- --
Návod: vytvoření standardního programu C++ vytvořte konzolovou aplikaci Windows.
Návod: Vytváření desktopových aplikací Windows (C++) vytvořte nativní Windows desktopovou aplikaci.
průvodce Windows Desktop pomocí průvodce můžete vytvořit nové projekty Windows.
Knihovna ATL (Active Template Library) Použijte knihovnu ATL k vytvoření komponent modelu COM v jazyce C++.
Knihovna MFC (Microsoft Foundation Classes) použití knihovny MFC k vytváření velkých nebo malých Windows aplikací s dialogovými dialogy a ovládacími prvky
Sdílené třídy ATL a MFC Používejte třídy, jako je například CString, které jsou sdíleny v ATL a MFC.
Přístup k datům OLE DB a rozhraní ODBC
Text a řetězce Různé typy řetězců v Windows.
Prostředky pro vytvoření hry s použitím rozhraní DirectX
Práce se zdrojovými soubory Postup přidání obrázků, ikon, tabulek řetězců a dalších prostředků do aplikace klasické pracovní plochy.
Prostředky pro vytvoření hry s použitím rozhraní DirectX (C++) Obsahuje odkazy na obsah pro vytváření her v jazyce C++.
postupy: použití Windows SDK v desktopové aplikaci Windows obsahuje kroky pro nastavení projektu pro sestavení pomocí Windows SDK.
Nasazení nativních aplikací klasické pracovní plochy Nasaďte nativní aplikace na Windows.
Nadpis Popis
C++ v sadě Visual Studio Nadřazené téma pro Visual C++ obsahu pro vývojáře
Vývoj pro .NET pomocí C++/CLI Vytváření obálek pro nativní knihovny C++, které umožňují komunikaci s aplikacemi a komponentami .NET.
Rozšíření komponent pro .NET a UWP Odkaz na prvky syntaxe sdílené pomocí C++/CX a C++/CLI.
Univerzální aplikace pro Windows (C++) zapište aplikace UWP pomocí C++/cx nebo knihovny šablon prostředí Windows Runtime (WRL).
Atributy C++ pro COM a .NET nestandardní atributy pro Windows programování pouze pomocí .net nebo COM.