Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konuda, C++/WinRT veya C++/CX Evrensel Windows Platformu (UWP) konsol uygulamasının nasıl
Uyarı
Konsol Uygulaması (Evrensel) Proje Şablonları uzantısı Visual Studio 2022'yi desteklemez. Bu şablonları yüklemek ve kullanmak için Visual Studio 2017 veya Visual Studio 2019 gereklidir.
Windows 10, sürüm 1803'ten başlayarak, DOS veya PowerShell konsol penceresi gibi bir konsol penceresinde çalışan C++/WinRT veya C++/CX UWP konsol uygulamaları yazabilirsiniz. Konsol uygulamaları giriş ve çıkış için konsol penceresini kullanır ve printf ve getchar gibi Evrensel C Çalışma Zamanı işlevlerini kullanabilir. UWP konsol uygulamaları Microsoft Store'da yayımlanabilir. Uygulama listesinde bir girdisi ve Başlat menüsüne sabitlenebilen bir birincil kutucuğu vardır. UWP konsol uygulamaları Başlat menüsünden başlatılabilir, ancak bunları genellikle komut satırından başlatırsınız.
Birini çalışırken görmek için işte UWP Konsol Uygulaması Oluşturma hakkında bir video.
UWP Konsol uygulaması şablonu kullanma
UWP konsol uygulaması oluşturmak için önce Visual Studio Market'ten edinilebilen Konsol Uygulaması (Evrensel) Proje Şablonları'nı yükleyin. Yüklü şablonlar daha sonra Yeni Proje>Yüklü>Diğer Diller>Visual C++> altında Konsol Uygulaması C++/WinRT (Evrensel Windows) ve Konsol Uygulaması C++/CX (Evrensel Windows) altında kullanılabilir.
Kodunuzu main() içine ekleme
Şablonlar, işlevini içeren main()
dosyasını eklerler. UWP konsol uygulamasında yürütme burada başlar.
__argc
ve __argv
parametreleriyle komut satırı bağımsız değişkenlerine erişin. Kontrol main()
'dan döndüğünde UWP konsol uygulaması kapanır.
Aşağıdaki Program.cpp örneği , Konsol Uygulaması C++/WinRT şablonu tarafından eklenir:
#include "pch.h"
using namespace winrt;
// This example code shows how you could implement the required main function
// for a Console UWP Application. You can replace all the code inside main
// with your own custom code.
int __cdecl main()
{
// You can get parsed command-line arguments from the CRT globals.
wprintf(L"Parsed command-line arguments:\n");
for (int i = 0; i < __argc; i++)
{
wprintf(L"__argv[%d] = %S\n", i, __argv[i]);
}
// Keep the console window alive in case you want to see console output when running from within Visual Studio
wprintf(L"Press 'Enter' to continue: ");
getchar();
}
UWP Konsol uygulaması davranışı
UWP Konsol uygulaması, çalıştırıldığı dizin ve onun altındaki dizinlerden dosya sistemine erişebilir. Bunun nedeni şablonun AppExecutionAlias uzantısını uygulamanızın Package.appxmanifest dosyasına eklemesi olabilir. Bu uzantı, kullanıcının uygulamayı başlatmak için bir konsol penceresinden diğer adı yazmasına da olanak tanır. Uygulamanın başlatılması için sistem yolunda olması gerekmez.
Ayrıca broadFileSystemAccess
bölümünde açıklandığı gibi kısıtlanmış özelliği ekleyerek UWP konsol uygulamanıza dosya sistemine geniş erişim verebilirsiniz. Bu özellik , Windows.Storage ad alanında API'lerle çalışır.
Şablon uygulamanızın Package.appxmanifest dosyasına SupportsMultipleInstances özelliğini eklediğinden bir UWP Konsol uygulamasının birden fazla örneği aynı anda çalıştırılabilir.
Şablon ayrıca package.appxmanifest dosyasına bu UWP uygulamasının bir konsol uygulaması olduğunu belirten özelliği ekler Subsystem="console"
.
desktop4
ve iot2 namespace
ön eklerine dikkat edin. UWP Konsol uygulamaları yalnızca masaüstü ve Nesnelerin İnterneti (IoT) projelerinde desteklenir.
<Package
...
xmlns:desktop4="http://schemas.microsoft.com/appx/manifest/desktop/windows10/4"
xmlns:iot2="http://schemas.microsoft.com/appx/manifest/iot/windows10/2"
IgnorableNamespaces="uap mp uap5 desktop4 iot2">
...
<Applications>
<Application Id="App"
...
desktop4:Subsystem="console"
desktop4:SupportsMultipleInstances="true"
iot2:Subsystem="console"
iot2:SupportsMultipleInstances="true" >
...
<Extensions>
<uap5:Extension
Category="windows.appExecutionAlias"
Executable="YourApp.exe"
EntryPoint="YourApp.App">
<uap5:AppExecutionAlias desktop4:Subsystem="console">
<uap5:ExecutionAlias Alias="YourApp.exe" />
</uap5:AppExecutionAlias>
</uap5:Extension>
</Extensions>
</Application>
</Applications>
...
</Package>
UWP konsol uygulamaları için ek dikkat edilmesi gerekenler
- Konsol uygulamaları yalnızca C++/WinRT ve C++/CX UWP uygulamaları olabilir.
- UWP Konsol uygulamaları Masaüstü'nü veya IoT proje türünü hedeflemelidir.
- UWP konsol uygulamaları pencere oluşturamayabilir. MessageBox() veya Location() veya kullanıcı onayı istemleri gibi herhangi bir nedenle pencere oluşturabilecek başka bir API kullanamazlar.
- UWP konsol uygulamaları arka plan görevlerini kullanamaz ve bir arka plan görevi olarak hizmet edemez.
- Command-Line etkinleştirme dışında, UWP konsol uygulamaları dosya ilişkilendirme, protokol ilişkilendirme vb. dahil olmak üzere etkinleştirme sözleşmelerini desteklemez.
- UWP konsol uygulamaları çoklu oturum açma özelliğini desteklese de, Çoklu oturum açma yeniden yönlendirmesini desteklemez
- UWP uygulamalarında kullanılabilen Win32 API'lerinin listesi için bkz. UWP uygulamaları için Win32 ve COM API'leri