Nasıl yapılır: CRT Kitaplık DLL'inden Bağımlılık Kaldırarak Kısmen Güvenilir Uygulama Oluşturma
Bu konuda, msvcm90.dll üzerindeki bağımlılığı kaldırarak Visual C++ kullanarak kısmen güvenilen bir Ortak Dil Çalışma Zamanı uygulamasının nasıl oluşturulacağı açıklanır.
/clr ile oluşturulan bir Visual C++ uygulamasının, C-Runtime Kitaplığı'nın parçası olan msvcm90.dll dosyasına bağımlılığı olacaktır. Uygulamanızın kısmi bir güven ortamında kullanılmasını istediğinizde, CLR DLL'nizde belirli kod erişimi güvenlik kurallarını zorunlu kılar. Bu nedenle, msvcm90.dll yerel kod içerdiğinden ve kod erişimi güvenlik ilkesi buna uygulanamadığından bu bağımlılığın kaldırılması gerekir.
Uygulamanız C-Runtime Kitaplığı'nın herhangi bir işlevini kullanmıyorsa ve bu kitaplık üzerindeki bağımlılığı kodunuzdan kaldırmak istiyorsanız , /NODEFAULTLIB:msvcmrt.lib bağlayıcı seçeneğini kullanmanız ve ptrustm.lib veya ptrustmd.lib ile bağlantı oluşturmanız gerekir. Bu kitaplıklar bir uygulamanın başlatılması ve başlatılmamış duruma getirilmesi için nesne dosyaları, başlatma kodu tarafından kullanılan özel durum sınıfları ve yönetilen özel durum işleme kodu içerir. Bu kitaplıklardan birine bağlandığınızda msvcm90.dll üzerindeki tüm bağımlılıklar kaldırılır.
Dekont
Derleme başlatma sırası, güven kitaplıklarını kullanan uygulamalar için farklı olabilir. Normal uygulamalar için derlemeler genellikle yüklendikleri sırayla kaldırılır, ancak bu garanti değildir. Kısmi güven uygulamaları için derlemeler genellikle yüklendikleri sırayla kaldırılır. Bu da garanti değildir.
Kısmen güvenilen karma (/clr) bir uygulama oluşturmak için
msvcm90.dll bağımlılığını kaldırmak için bağlayıcıya /NODEFAULTLIB:msvcmrt.lib bağlayıcısı seçeneğini kullanarak bu kitaplığın dahil edilmemesi gerektiğini belirtmeniz gerekir. Bunun Visual Studio geliştirme ortamını kullanarak veya program aracılığıyla nasıl yapılacağı hakkında bilgi için bkz . /NODEFAULTLIB (Kitaplıkları Yoksay).
Bağlayıcı giriş bağımlılıklarına güvenim kitaplıklarından birini ekleyin. Uygulamanızı yayın modunda oluşturuyorsanız ptrustm.lib kullanın. Hata ayıklama modu için ptrustmd.lib kullanın. Bunu Visual Studio geliştirme ortamını kullanarak veya program aracılığıyla yapma hakkında bilgi için bkz . . Bağlayıcı Girişi Olarak Lib Dosyaları.
Ayrıca bkz.
Karışık (Yerel ve Yönetilen) Derlemeler
Karışık Derlemeleri Başlatma
Karışık Derlemeler için Kitaplık Desteği
/link (Seçenekleri Bağlayıcıya Geçir)
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin