Aracılığıyla paylaş


Birlikte Çalışabilirliğe Genel Bakış

Birlikte çalışabilirlik, yönetilmeyen koda yapılan mevcut yatırımları korumanızı ve bu yatırımlardan yararlanmanızı sağlar. Ortak dil çalışma zamanının (CLR) denetimi altında çalışan kod yönetilen koddur ve CLR dışında çalışan kod yönetilmeyen koddur. COM, COM+, C++ bileşenleri, ActiveX bileşenleri ve Microsoft Windows API yönetilmeyen kod örnekleridir.

.NET, yönetilmeyen kodla birlikte çalışabilirliği platform çağırma hizmetleri, System.Runtime.InteropServices ad alanı, C++ birlikte çalışabilirliği ve COM birlikte çalışabilirliği (COM birlikte çalışma) aracılığıyla sağlar.

Platform Çağrı

Platform çağırma , yönetilen kodun Microsoft Windows API gibi dinamik bağlantı kitaplıklarında (DLL' ler) uygulanan yönetilmeyen işlevleri çağırmasını sağlayan bir hizmettir. Dışarı aktarılan bir işlevi bulup çağırır ve bağımsız değişkenlerini (tamsayılar, dizeler, diziler, yapılar vb.) gerektiğinde birlikte çalışma sınırında sıralar.

Daha fazla bilgi için bkz . Yönetilmeyen DLL İşlevlerini Kullanma ve WAV dosyasını yürütmek için platform çağırmayı kullanma.

Uyarı

Ortak Dil Çalışma Zamanı (CLR), sistem kaynaklarına erişimi yönetir. CLR dışındaki yönetilmeyen kodu çağırmak bu güvenlik mekanizmasını atlar ve bu nedenle bir güvenlik riski oluşturur. Örneğin yönetilmeyen kod, CLR güvenlik mekanizmalarını atlayarak yönetilmeyen koddaki kaynakları doğrudan çağırabilir. Daha fazla bilgi için bkz. .NET'te güvenlik.

C++ Etkileşim

Yerel bir C++ sınıfını sarmak için Yalnızca Çalışıyor (IJW) olarak da bilinen C++ birlikte çalışma özelliğini kullanabilirsiniz. C++ interop, C# dilinde veya başka bir .NET dilinde yazılmış kodun C++ koduna erişmesini sağlar. Yerel DLL veya COM bileşenini sarmak için C++ kodu yazarsınız. Diğer .NET dillerinden farklı olarak, Visual C++ aynı uygulamada ve hatta aynı dosyada yönetilen ve yönetilmeyen kod sağlayan birlikte çalışabilirlik desteğine sahiptir. Ardından yönetilen bir derleme oluşturmak için /clr derleyici anahtarını kullanarak C++ kodunu oluşturursunuz. Son olarak, C# projenizdeki derlemeye bir başvuru ekler ve sarmalanan nesneleri diğer yönetilen sınıfları kullandığınız gibi kullanırsınız.

COM Bileşenlerini C'ye Gösterme#

C# projesinden bir COM bileşeni kullanabilirsiniz. Genel adımlar şunlardır:

  1. Kullanmak ve kaydetmek için bir COM bileşeni bulun. COM DLL'sini kaydetmek veya kaydını silmek için regsvr32.exe kullanın.
  2. Projeye COM bileşenine veya tür kitaplığına bir başvuru ekleyin. Başvuru eklediğinizde, Visual Studio Tlbimp.exe (Tür Kitaplığı İçeri Aktarıcısı)'nı kullanarak tür kitaplığını giriş olarak alır ve .NET birlikte çalışabilirlik derlemesini çıktı olarak oluşturur. Çalışma zamanı çağrılabilen sarmalayıcı (RCW) olarak da adlandırılan derleme, tür kitaplığındaki COM sınıflarını ve arabirimlerini sarmalayan yönetilen sınıfları ve arabirimleri içerir. Visual Studio, projeye oluşturulan derlemeye bir başvuru ekler.
  3. RCW'de tanımlanan bir sınıfın örneğini oluşturun. Bu sınıfın bir örneğini oluşturmak, COM nesnesinin bir örneğini oluşturur.
  4. Nesneyi, diğer yönetilen nesneleri kullandığınız gibi kullanın. Nesne çöp toplama tarafından geri kazanıldığında, COM nesnesinin örneği de bellekten serbest bırakılır.

Daha fazla bilgi için bkz. COM Bileşenlerini .NET Framework'e Gösterme.

C#'yi COM'a açma

COM istemcileri doğru şekilde kullanıma sunulan C# türlerini kullanabilir. C# türlerini kullanıma sunmanın temel adımları şunlardır:

  1. C# projesine birlikte çalışma öznitelikleri ekleyin. C# proje özelliklerini değiştirerek bir derleme COM'sini görünür hale getirebilirsiniz. Daha fazla bilgi için bkz . Derleme Bilgileri İletişim Kutusu.
  2. COM türü bir kitaplık oluşturun ve COM kullanımı için kaydını yapın. COM birlikte çalışma için C# derlemesini otomatik olarak kaydetmek üzere C# proje özelliklerini değiştirebilirsiniz. Visual Studio, bir tür kitaplığı oluşturmak için yönetilen bir derlemeyi giriş olarak alan komut satırı anahtarını ve /tlb'nı kullanır. Bu tür kitaplığı derlemedeki public türleri açıklar ve COM istemcilerinin yönetilen sınıflar oluşturabilmesi için kayıt defteri girdileri ekler.

Daha fazla bilgi için bkz. .NET Framework Bileşenlerini COM'a Gösterme ve Örnek COM Sınıfı.

Ayrıca bakınız