Nasıl yapılır: CRT Kitaplık DLL'inden Bağımlılık Kaldırarak Kısmen Güvenilir Uygulama Oluşturma
Bu konu msvcm90.dll öğesine bağımlılığı kaldırarak Visual C++ kullanıp kısmen güvenilir bir Ortak Dil Çalışma Zamanı uygulamasının nasıl oluşturulabileceğini açıklamaktadır.
/clr ile oluşturulmuş bir Visual C++ uygulamasının, C-Çalışma Zamanı Kitaplığı'nın parçası olan msvcm90.dll'ye bir bağımlılığı olacaktır. Uygulamanızın kısmi güven ortamında kullanılmasını istiyorsanız, CLR, DLL'deki güvenlik kurallarına erişim için belirli bir kod gerektirecektir. Bu yüzden, msvcm90.dll yerel kod içerdiğinden ve kod erişimi güvenlik ilkesi üzerine zorlanamayacağından bu bağımlılığı kaldırmak gerekecektir.
Uygulamanız C-Çalışma Zamanı Kitaplığının hiçbir işlevselliğini kullanmıyorsa ve kodunuzdan bu kitaplığa bağımlılığı kaldırmak isterseniz, /NODEFAULTLIB:msvcmrt.lib bağlayıcı seçeneğini kullanmanız ve ptrustm.lib ya da ptrustmd.lib ile bağlamanız gerekir. Bu kitaplıklar, bir uygulamaya ilişkin başlatmayı ve başlatmayı geri almayı, başlatma kodu tarafından kullanılan özel durum sınıflarını ve yönetilen özel durum işleme kodunu içerir. Bu kütüphanelerin birinde bağlama msvcm90.dll öğesine herhangi bir bağımlılığı kaldıracaktır.
Not
Derleme başlatmasını geri alma sırasını ptrust kitaplıklarını kullanan uygulamalar için farklılık gösterebilir.Normal uygulamalarda, birleştirmeler genellikle yüklendikleri sıranın tersinde kaldırılır, ancak bu garanti edilmez.Kısmi güven uygulamaları için, birleştirmeler genellikle yüklendikleri sırayla kaldırılır.Bu da garanti edilemez.
Kısmen güvenilen karışık bir (/ clr) uygulaması oluşturmak için
msvcm90.dll'e bağımlılığı kaldırmak için /NODEFAULTLIB:msvcmrt.lib bağlayıcı seçeneğini kullanarak bağlayıcıya bu kitaplığı içermemesini belirtmeniz gerekir. Visual Studio geliştirme ortamı kullanarak veya programlı olarak bunun nasıl gerçekleştirileceği hakkında daha fazla bilgi için bkz./ NODEFAULTLIB (kitaplıklar yoksay).
Ptrustm kitaplıklarından birini bağlayıcı giriş bağımlılıklarına ekleyin. Uygulamanızı yayımlama modunda oluşturuyorsanız ptrustm.lib kullanın. Hata ayıklama modu için ptrustmd.lib kullanın. Visual Studio geliştirme ortamı kullanarak veya programlı olarak bunun nasıl gerçekleştirileceği hakkında daha fazla bilgi için bkz..Bağlayıcı giriş olarak lib dosyaları.
Ayrıca bkz.
Başvuru
/Link (Linker seçenekleri pass)
Kavramlar
Karışık (Yerel ve Yönetilen) Derlemeler
Karışık Derlemeler için Kitaplık Desteği