Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A C++ asztali alkalmazásai natív alkalmazások, amelyek hozzáférhetnek a Windows API-k teljes készletéhez, és vagy egy ablakban vagy a rendszerkonzolon futnak. A C++-ban futó asztali alkalmazások Windows XP rendszeren futtathatók Windows 11-en keresztül (bár a Windows XP már hivatalosan nem támogatott, és azóta számos új Windows API érhető el).
A C++ bármely asztali alkalmazása használhatja a C futtatókörnyezetet (CRT) és a standard kódtár osztályait és függvényeit, COM-objektumait és a nyilvános Windows-függvényeket, amelyeket együttesen Windows API-nak neveznek. A Windows asztali alkalmazások C++-ban való használatának első lépéseit a Win32 és a C++ használatbavétele című témakörben tekintheti meg.
A C++-tal létrehozható Windows-alkalmazásoknak számos átfogó kategóriája van, amelyeket az alábbiakban ismertetünk. Mindegyik saját programozási modellel és Windows-specifikus kódtárak készletével rendelkezik. A C++ standard kódtár és a külső C++ kódtárak bármelyikben használhatók.
A Windows platform dokumentációját a Windows dokumentációjában találja.
Natív asztali ügyfélalkalmazások
A natív asztali ügyfélalkalmazások vagy a Win32-alkalmazások olyan C vagy C++ nyelven írt Windows asztali alkalmazások, amelyek natív Windows C API-kat vagy komponensobjektum-modelleket (COM) használó API-kat és standard kódtár API-kat, valamint külső tárakat használnak. Az ablakban futó Win32-alkalmazásokhoz a fejlesztőnek windowsos eljárásfüggvényen belül kell kezelnie a Windows-üzeneteket. A név ellenére a Win32-alkalmazások 32 bites (x86) vagy 64 bites (x64) binárisként fordíthatók le. A Visual Studio IDE-ben az x86 és a Win32 kifejezések szinonimák.
- A hagyományos Windows C++-programozás használatának első lépéseit a Win32 és a C++ használatbavétele című témakörben találhatja meg.
- Egy kifinomult grafikát használó hagyományos C++ asztali alkalmazásra példa : Hilo: C++ alkalmazások fejlesztése Windowshoz.
Parancssori (konzolos) alkalmazások
A C++ konzolalkalmazások a konzolablak parancssorából futnak, és csak szöveges kimenetet tudnak megjeleníteni.
- További információ: Konzolkalkulátor létrehozása a C++-ban.
UWP-alkalmazások
Az Univerzális Windows Platform (UWP) a modern Windows API. Az UWP-alkalmazások Windows 11, Windows 10, XBox, Windows Phone, Surface Hub és egyéb eszközökön futnak. Az UWP-alkalmazások az XAML-t használják a felhasználói felülethez, és teljes mértékben érintésesen engedélyezve vannak. Az asztali alkalmazások eltérnek az univerzális Windows-platform (UWP) alkalmazásoktól.
- Az asztali és az UWP-alkalmazásokról további információt a Technológia kiválasztása című témakörben talál.
- Az UWP-ről további információt a What's a Universal Windows Platform (UWP) app és a Windows Universal Apps útmutatójában talál.
Az UWP eredeti C++ támogatása a C++/CX, a C++ szintaxiskiterjesztésekkel rendelkező dialektusa, vagy a Windows Runtime Library (WRL) volt, amely a standard C++ és COM protokollon alapul. A C++/CX és a WRL is támogatott, de nem ajánlott új fejlesztéshez.
Új projektek esetén a C++/WinRT szolgáltatást javasoljuk, amely teljes egészében a standard C++ szabványon alapul, és gyorsabb teljesítményt nyújt.
A C++/CLI-alkalmazások vagy -összetevők bővítményeket használnak a C++ szintaxishoz (a C++ Standard által megengedett módon) a .NET és a natív C++-kód közötti interakció engedélyezéséhez. A C++/CLI-alkalmazások tartalmazhatnak natívan futó részeket, valamint a .NET-keretrendszeren futó részeket a .NET alaposztálytárhoz való hozzáféréssel. A C++/CLI az előnyben részesített beállítás, ha natív C++ kóddal rendelkezik, amelynek C# vagy Visual Basic nyelven írt kóddal kell dolgoznia. A felhasználói felület kódja helyett .NET-DLL-ekben való használatra szolgál.
- További információ: .NET-programozás C++/CLI-vel (Visual C++)..
Asztali híd
Windows 10-es és újabb verziókban a meglévő asztali alkalmazást vagy COM-objektumot UWP-alkalmazásként csomagolhatja be. Használhat UWP-funkciókat, például érintést, vagy meghívhat API-kat a modern Windows API-készletből. UWP-alkalmazást is hozzáadhat egy asztali megoldáshoz a Visual Studióban, egyetlen csomagba csomagolhatja őket, és Windows API-k használatával kommunikálhat közöttük.
A Visual Studio 2017 15.4-es és újabb verzióival windowsos alkalmazáscsomag-projektet hozhat létre, amely jelentősen leegyszerűsíti a meglévő asztali alkalmazás csomagolásának munkáját. Néhány korlátozás vonatkozik az asztali alkalmazás által használható beállításjegyzék-hívásokra vagy API-kra. Számos esetben azonban létrehozhat alternatív kódútvonalakat, amelyek hasonló funkciókat biztosítanak az alkalmazáscsomagokban való futtatás során.
- További információ: Asztali híd.
C++ vagy .NET?
A C# .NET-programozása általában kevésbé összetett, kevésbé hibalehetőségű, és modernebb objektumorientált API-val rendelkezik, mint a Win32 vagy az MFC. A legtöbb esetben a teljesítménye több mint megfelelő.
A .NET a Windows Presentation Foundationt (WPF) használja a gazdag ábrákhoz, és a Win32 és a modern Windows Runtime API is használható. Általános szabályként a C++ használatát javasoljuk asztali alkalmazásokhoz, ha az alábbiakra van szükség:
- a memóriahasználat pontos szabályozása
- a lehető leghatékonyabb takarékosság az energiafogyasztásban
- a GPU használata általános számítástechnika céljából
- Hozzáférés a DirectX-hez
- A standard C++ kódtárak nagy mértékű használata
A C++ teljesítményét és hatékonyságát a .NET-programozással is kombinálhatja. Létrehozhat egy felhasználói felületet a C#-ban, és a C++/CLI használatával engedélyezheti az alkalmazás számára natív C++ kódtárak használatát.
- További információ: .NET-programozás C++/CLI használatával.
Játékok
A DirectX-játékok pc-n vagy Xboxon is futtathatók.
- További információ: DirectX Graphics and Gaming.
SQL Server-adatbázis-ügyfelek
Ha natív kódból szeretné elérni az SQL Server-adatbázisokat, használja az ODBC-t vagy az OLE DB-t.
- További információ: SQL Server Native Client.
Windows-eszközillesztők
Az illesztőprogramok alacsony szintű összetevők, amelyek a hardvereszközökről származó adatokat elérhetővé teszik az alkalmazások és más operációsrendszer-összetevők számára.
- További információ: Windows Driver Kit (WDK).
Windows-szolgáltatások
A Windows-szolgáltatások olyan programok, amelyek a háttérben, felhasználói beavatkozás nélkül vagy egyáltalán nem futtathatók. Ezeket a programokat UNIX-rendszerek démonoknak nevezik.
- További információ: Services.
COM
A komponensobjektum-modell (COM) egy olyan specifikáció, amely lehetővé teszi a különböző nyelveken írt programok számára, hogy együttműködjenek egymással.
Számos Windows-összetevő com-objektumként van implementálva, és a szabványos COM-szabályokat követi az objektumok létrehozásához, a felület felderítéséhez és az objektumok megsemmisítéséhez. A COM-objektumok használata A C++ asztali alkalmazásokból viszonylag egyszerű, de a saját COM-objektum írása fejlettebb.
Az Aktív sablontár (ATL) makrókat és segédfüggvényeket biztosít, amelyek leegyszerűsítik a COM-fejlesztést. További információ: ATL COM asztali összetevők.
MFC
Az MFC-alkalmazások olyan Asztali Windows-alkalmazások, amelyek a Microsoft Foundation osztályait használják a felhasználói felület létrehozásához. Az MFC-alkalmazások COM-összetevőket, CRT- és standard kódtár API-kat is használhatnak.
Az MFC vékony C++ objektumorientált burkolót biztosít az ablak üzenethurok és a Windows API-k felett. Az MFC az alapértelmezett választás olyan alkalmazásokhoz – különösen a nagyvállalati típusú alkalmazásokhoz –, amelyek számos felhasználói felületi vezérlőt vagy egyéni felhasználói vezérlőt is használhatnak.
Az MFC kényelmes segédosztályokat biztosít az ablakkezeléshez, szerializáláshoz, szövegmanipulációhoz, nyomtatáshoz és modern felhasználói felületi elemekhez, például a menüszalaghoz. Az MFC hatékony használatához ismernie kell a Win32-t.
SDK-k, kódtárak és fejlécfájlok
A Visual Studio tartalmazza a C Futtatókörnyezeti kódtárat (CRT), a C++ Standard könyvtárat és más Microsoft-specifikus kódtárakat. A kódtárak fejlécfájljait tartalmazó mappák többsége a Visual Studio telepítési könyvtárában található a \VC\ mappában (például C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.39.33519\include\
). A Windows és a CRT fejlécfájljai a Windows SDK telepítési mappájában találhatók (például C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt\
)
A vcpkg csomagkezelővel több száz külső nyílt forráskódú kódtárat telepíthet kényelmesen Windowshoz. További információ: vcpkg.
A Microsoft-kódtárak a következők:
Microsoft Foundation Classes (MFC): A hagyományos Windows-programok – különösen a nagyvállalati alkalmazások – létrehozására szolgáló objektumorientált keretrendszer, amely gombokkal, listamezőkkel, fanézetekkel és egyéb vezérlőkkel rendelkező, gazdag felhasználói felületekkel rendelkezik. További információ: Asztali MFC-alkalmazások.
Active Template Library (ATL): Hatékony segédtár COM-összetevők létrehozásához. További információ: ATL COM Desktop Components.
C++ AMP (C++ gyorsított nagy párhuzamosság): Olyan kódtár, amely nagy teljesítményű általános számítási munkát tesz lehetővé a GPU-n. További információ: C++ AMP (C++ Gyorsított nagy párhuzamosság).
Egyidejűségi futtatókörnyezet: A többmagos és többmagos eszközök párhuzamos és aszinkron programozásának munkáját leegyszerűsítő kódtár. További információ: Concurrency Runtime.
Számos Windows-programozási forgatókönyvhez szükség van a Windows SDK-ra is, amely tartalmazza azokat a fejlécfájlokat, amelyek lehetővé teszik a Windows operációs rendszer összetevőihez való hozzáférést. Alapértelmezés szerint a Visual Studio telepíti a Windows SDK-t a C++ Desktop számítási feladat összetevőjeként, amely lehetővé teszi az univerzális Windows-alkalmazások fejlesztését. UWP-alkalmazások fejlesztéséhez a Windows SDK Windows 10-es vagy újabb verziójára van szükség.
- További információ és letöltési hivatkozás: Windows SDK.
- A Windows korábbi verzióihoz készült Windows SDK-kkal kapcsolatos további információkért tekintse meg a Windows SDK archívumát.
A telepített Windows SDK összes verziójának alapértelmezett helye a következő: Program Files (x86)\Windows Kits
.
Fejlesztői eszközök
A Visual Studio tartalmaz egy hatékony hibakeresőt a natív kódhoz, a statikus elemzési eszközökhöz, a grafikus hibakereső eszközökhöz, a teljes funkcionalitású kódszerkesztőhöz, az egységtesztek támogatásához és sok más eszközhöz és segédprogramhoz.
- További információ: A Visual Studio használatának első lépései, valamint a C++ fejlesztés áttekintése a Visual Studióban.
Ebben a szakaszban
Hivatkozás | Leírás |
---|---|
Útmutató: Asztali Windows-alkalmazások létrehozása (C++) | Hozzon létre egy natív Windows asztali alkalmazást. |
Útmutató: A Windows SDK használata asztali Windows-alkalmazásokban | A windowsos SDK-val történő buildeléshez szükséges projekt beállításának lépéseit tartalmazza. |
Útmutató: Standard C++ program létrehozása | Hozzon létre egy Windows-konzolalkalmazást. |
Útmutató: Konzolkalkulátor létrehozása a C++ alkalmazásban | Hozzon létre egy egyszerű Windows-konzolalkalmazást. A Win32 (vagy Win64) konzolalkalmazásnak nincs saját ablaka, és nincs üzenethurok. A konzolablakban fut, a bemenetet és a kimenetet pedig a parancssor kezeli. |
Natív asztali alkalmazások üzembe helyezése | Natív alkalmazások üzembe helyezése Windows rendszeren. |
Útmutató: Statikus kódtár létrehozása és használata | Hogyan hozzunk létre egy .lib bináris fájlt? |
Windows Asztalkezelő varázsló | A varázslóval új Windows-projekteket hozhat létre. |
Aktív sablontár (ATL) | COM-összetevők létrehozása a C++-ban az ATL-kódtár használatával. |
ATL és MFC megosztott osztályok | Használjon olyan osztályokat, mint CString amelyek az ATL-ben és az MFC-ben vannak megosztva. |
Microsoft Foundation Classes (MFC) | Nagyméretű vagy kisméretű Windows-alkalmazások létrehozása párbeszédpanelekkel és vezérlőkkel az MFC használatával |
Adathozzáférés | OLE DB és ODBC |
Szöveg és sztringek | A Windows különböző sztringtípusai. |
Erőforrásfájlok használata | Képek, ikonok, sztringtáblák és egyéb erőforrások hozzáadása asztali alkalmazásokhoz. |
Erőforrások játék létrehozásához a DirectX használatával (C++) | A C++-ban játékok létrehozására szolgáló tartalmakra mutató hivatkozások. |
Kapcsolódó cikkek
Cím | Leírás |
---|---|
Windows-fejlesztés | Információkat tartalmaz a Windows API-ról és a COM-ról. (Egyes Windows API-k és külső dll-ek COM-objektumokként vannak implementálva.) |
Hilo: C++ alkalmazások fejlesztése Windows 7-hez | Ismerteti, hogyan hozhat létre gazdag ügyféloldali Windows asztali alkalmazást, amely a Windows Animation és a Direct2D használatával hoz létre körhintaalapú felhasználói felületet. Ez az oktatóanyag nem frissült a Windows 7 óta, de továbbra is alapos bevezetést nyújt a Win32-programozásba. |
.NET-fejlesztés C++/CLI használatával | Burkolókat hozhat létre natív C++ kódtárakhoz, amelyek lehetővé teszik a .NET-alkalmazásokkal és -összetevőkkel való kommunikációt. |
A .NET és az UWP összetevőbővítményei | Hivatkozás a C++/CX és a C++/CLI által megosztott szintaxiselemekre. |
Univerzális Windows-alkalmazások (C++) | UWP-alkalmazások írása C++/CX vagy Windows futtatókörnyezeti sablontár (WRL) használatával. |
A COM és a .NET C++ attribútumai | Nem szabványos attribútumok csak Windows rendszerű programozáshoz .NET vagy COM használatával. |