Windows Çalışma Zamanı (WinRT) dil projeksiyonları

Windows Çalışma Zamanı (WinRT), Windows API'leri ve bileşenlerini oluşturmaya yönelik dilden bağımsız bir uygulama mimarisidir. Bir dil projeksiyonu, WinRT API'lerini belirli bir programlama dilinin kurallarına göre kullanıma sunar, böylece C# veya C++ kodunuz bunları dilinizdeki diğer API'ler gibi çağırabilir.

Projeksiyonların nasıl çalıştığını anlamak, uygulamanızda WinRT API'lerini kullanmaya veya kendi yeniden kullanılabilir WinRT bileşenlerinizi yazmaya karar vermenize yardımcı olur. Bu makale, bir dil projeksiyonunun WinRT meta verilerini C# ve C++'a nasıl eşlediğini, Microsoft'un hangi projeksiyonları desteklediğini ve projeksiyon belgelerine ne zaman ihtiyaç duyacağınızı açıklar.

Dil projeksiyonları nasıl çalışır?

Windows Meta Veriler (.winmd) dosyaları WinRT API'lerini tanımlar. Dil projeksiyonu bu meta verileri okur ve API'leri belirli bir programlama dilinin kurallarına göre kullanıma sunar. Standart bir Windows Uygulama SDK'sı veya WinUI şablonundan proje oluşturduğunuzda, şablon zaten dil projeksiyonunu yapılandırır ve C# veya C++ kodunuz temel meta veriler veya uygulama ikili arabirimi (ABI) ile çalışmadan WinRT API'lerini doğrudan çağırabilir.

Desteklenen dil projeksiyonları

Microsoft, Windows Uygulama SDK'sı ve WinUI uygulamaları için C# ve C++ dil projeksiyonlarını destekler. Topluluk projeleri Rust gibi diğer diller için projeksiyonlar sağlar, ancak Microsoft bunları resmi olarak desteklemez.

Projection Dil Ne sağlar?
C++/WinRT C++17 veya üzeri WinRT API'lerini ve bileşenlerini kullanmaya ve yazmaya yönelik standart bir C++ dil projeksiyonu.
C#/WinRT C# (.NET) WinRT API'lerini kullanmaya ve WinRT bileşenlerini yazmaya yönelik .NET dil projeksiyonu.

Dil projeksiyonu belgeleri ne zaman kullanılır?

Uygulama geliştirmenin çoğu için, seçtiğiniz dildeki diğer API'ler gibi öngörülen WinRT API'lerini kullanabilirsiniz. Aşağıdaki durumlarda projeksiyon belgelerini kullanın:

  • Diğer uygulamaların veya dillerin tükettiği bir Windows Çalışma Zamanı bileşeni yazın.
  • Kitaplığı WinRT API'lerini sarmalayan bir NuGet paketi olarak dağıt.
  • C++ kodundan alt düzey COM veya ABI arabirimleriyle çalışın.
  • .winmd.