Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Topik ini menjelaskan cara membuat aplikasi konsol C++/WinRT atau C++/CX Universal Windows Platform (UWP)
Nota
Ekstensi Templat Proyek (Universal) Console App tidak mendukung Visual Studio 2022. Visual Studio 2017 atau Visual Studio 2019 diperlukan untuk menginstal dan menggunakan templat ini.
Dimulai dengan Windows 10, versi 1803, Anda dapat menulis aplikasi konsol C++/WinRT atau C++/CX UWP yang berjalan di jendela konsol, seperti jendela konsol DOS atau PowerShell. Aplikasi konsol menggunakan jendela konsol untuk input dan output, dan dapat menggunakan fungsi
Untuk melihat tindakannya, berikut adalah video tentang Membuat Aplikasi Konsol UWP.
Menggunakan templat aplikasi Konsol UWP
Untuk membuat aplikasi konsol UWP, pertama-tama instal templat proyek
Tambahkan kode Anda ke main()
Templat menambahkan Program.cpp, yang berisi fungsi main(). Di sinilah eksekusi dimulai di aplikasi konsol UWP. Akses argumen baris perintah dengan parameter __argc dan __argv. Aplikasi konsol UWP keluar saat kontrol kembali dari main().
Contoh Program.cpp berikut ditambahkan oleh templat Aplikasi Konsol C++/WinRT:
#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();
}
Perilaku aplikasi Konsol UWP
Aplikasi Konsol UWP dapat mengakses sistem file dari direktori tempatnya dijalankan, dan di bawah ini. Ini dimungkinkan karena templat menambahkan ekstensi AppExecutionAlias
Anda juga dapat memberikan akses luas ke sistem file ke aplikasi konsol UWP Anda dengan menambahkan kemampuan terbatas broadFileSystemAccess seperti yang dijelaskan dalam izin akses file . Kemampuan ini berfungsi dengan API di namespace Windows.Storage
Lebih dari satu instans aplikasi Konsol UWP dapat berjalan pada satu waktu karena templat menambahkan kemampuan SupportsMultipleInstances ke file Package.appxmanifest aplikasi Anda.
Templat ini juga menambahkan kemampuan Subsystem="console" ke file Package.appxmanifest, yang menunjukkan bahwa aplikasi UWP ini adalah aplikasi konsol. Perhatikan awalan desktop4 dan iot2 namespace. Aplikasi Konsol UWP hanya didukung pada proyek desktop dan Internet of Things (IoT).
<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>
Pertimbangan tambahan untuk aplikasi konsol UWP
- Hanya aplikasi C++/WinRT dan C++/CX UWP yang mungkin berupa aplikasi konsol.
- Aplikasi Konsol UWP harus menargetkan jenis proyek Desktop, atau IoT.
- Aplikasi konsol UWP mungkin tidak membuat jendela. Mereka tidak dapat menggunakan MessageBox(), atau Location(), atau API lain yang dapat membuat jendela karena alasan apa pun, seperti permintaan persetujuan pengguna.
- Aplikasi konsol UWP mungkin tidak menggunakan tugas latar belakang atau berfungsi sebagai tugas latar belakang.
- Dengan pengecualian aktivasi Command-Line, aplikasi konsol UWP tidak mendukung kontrak aktivasi, termasuk asosiasi file, asosiasi protokol, dll.
- Meskipun aplikasi konsol UWP mendukung multi-instancing, aplikasi tersebut tidak mendukung pengalihan multi-instancing
- Untuk daftar API Win32 yang tersedia untuk aplikasi UWP, lihat Win32 dan COM API untuk aplikasi UWP