Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows 10 için uygulama veya sürücü oluşturuyorsanız, yalnızca bu bölümü okumanız gerekir. Visual Studio'nun Visual Studio 2015'ten önceki bir sürümünü kullanıyorsanız, bu bölümü atlayın ve C Çalışma Zamanını Yeniden Dağıtma (Visual Studio 2015 öncesi için geçerlidir)ile başlayın.
Visual Studio 2015'den başlayarak, Evrensel C Çalışma Zamanı (UCRT) C çalışma zamanını kapsar. Tam bir program için gereken diğer parçalar (C/C++ Dil Özellikleri, C++ Kitaplığı) Visual Studio tarafından VC++ Yeniden Dağıtılabilir'de sağlanır. Çalışma zamanı yeniden dağıtım gereksinimini önlemek için bu parçalar statik olarak bağlanır.
Uyarı
Visual Studio'da kullanıcı modu sürücü projesi oluştururken, platformtoolset WindowsUserModeDriver10.0olarak ayarlarsanız, araç takımı projede belirtilen tüm çalışma zamanı kitaplıklarını yoksayar ve bunun yerine VC++ Çalışma Zamanı'na statik olarak ve dinamik olarak UCRT'ye bağlanır. Bu araç takımı kullanılırken, bu karma bağlama davranışı yeniden yapılandırılamaz.
WindowsUserModeDriver10.0 araç takımını kullanmıyorsanız, değişiklik yapmak için aşağıdaki yordamı kullanın (örneğin, başka bir DLL ekleyin):
- Genel olarak statik bağlantı için ayarlayın: Özellikler > C/C++ > Kod Oluşturma > Çalışma Zamanı Kitaplığı = Çok iş parçacıklı (/MT)
- Statik bağlantılı UCRT'yi kaldırın: Özellikler > Bağlayıcı > Girdi > Belirli Varsayılan Kitaplıkları Yoksay += libucrt.lib
- Dinamik olarak bağlı UCRT: Özellikleri > Bağlayıcı > Giriş > Ek Bağımlılıklar += ucrt.lib, Özellikler > Bağlayıcı > Giriş > Belirli Varsayılan Kitaplıkları Yoksay += libucrt.lib
C Çalışma Zamanını Yeniden Dağıtma (Visual Studio 2015 öncesi için geçerlidir)
Uyarı
Bu noktanın altındaki tüm bilgiler yalnızca 2015 öncesi için geçerlidir. 2015'den önce C Çalışma Zamanı'nın iki ayrı sürümü vardı: Visual C++ Çalışma Zamanı (VCRT, örneğin msvcr120.dll) ve eski Windows CRT (msvcrt.dll).
Visual Studio, VCRT'nin en son sürümünü System32 dizinine yükler. Dosya bu konumda değilse, doğrudan Visual C++ projenizin derleme dizinine kopyalayabilirsiniz.
Kullanıcı modu sürücünüz veya masaüstü uygulamanız VCRT kullanıyorsa, uygun dinamik bağlantı kitaplıklarını dağıtmanız gerekir. Visual C++ Yeniden Dağıtılabilir Paketini (VCRedist_x86.exe, VCRedist_x64.exe, VCRedist_arm.exe) kullanın. Yeniden dağıtılabilir paketi diğer ikili dosyalarla birlikte zincirleyin ve yeniden dağıtılabilir paket otomatik güncelleştirmeleri alacaktır.
Yalıtım elde etmek veya VC++ Yeniden Dağıtılabilir bağımlılığından kaçınmak istiyorsanız, bunun yerine statik olarak CRT'ye bağlanabilirsiniz. Sürücü olmayan projeler genellikle belirli Visual C/C++ DLL'lerini uygulama yerel klasörüne (uygulamanın yüklendiği yer) kopyalayarak VC++ Yeniden Dağıtılabilir'e bağımlılığı önlese de, uygulama yerel dağıtımı bir sürücü için uygun değildir.
Tek tek CRT bileşenlerini System32 kopyalamayın; bunun yerine, yeniden dağıtılabilir bir paket kullanın. Bu, CRT'nin otomatik olarak servis edilmemesine ve üzerine yazılabilmesine neden olabilir.
Yazıcı sürücüleri için aşağıdaki özel noktalar geçerlidir:
- Bu sürücüler INF'de gerekli CRT dosyalarını içermelidir, böylece CRT dosyaları sürücü yükünün bir parçası olarak sürücü deposuna kopyalanır.
- V4 yazdırma sürücüleri kurulum için ortak yükleyici kullanamaz, bu nedenle INF'nin C/C++ çalışma zamanı kitaplığının ilgili ikili dosyalarını sürücü deposuna kopyalaması gerekir. Bunu yapmak için, sürücü paketinin [COPY_FILES] bölümünde uygun dosyalara başvurun.
- V3 yazdırma sürücüleri, Nokta ve Yazdırma bağlantıları sırasında çalıştırılmadığından kurulum için ortak yükleyiciler kullanmamalıdır. Bu sürücüler, sürücü paketinin [COPY_FILES] bölümünde uygun dosyalara başvurmalıdır.
Aşağıda, bir INF dosyasının [COPY_FILES] bölümüne CRT ikili dosyalarının nasıl dahil edileceğine dair bir örnek verilmiştir.
[COPY_FILES]
;CRT
Msvcr120.dll
; other files
* [SourceDisksFiles]
Msvcr120.dll = 2
; other files
* [SourceDisksNames.amd64]
1 = %Location%,,,
2 = %Location%,,,"amd64"
UMDF sürücüleri için:
- Çalışma zamanını ikili dosyaya eklemek için sürücünüzü CRT'ye statik olarak bağlayın. Bu durumda, CRT'yi yeniden dağıtmanız gerekmez.
Kodunuzu C Çalışma Zamanı kitaplıklarına bağlama (Visual Studio 2015 öncesi için geçerlidir)
Uygulamanızla hangi DLL'leri yeniden dağıtmanız gerektiğini belirlemek için, uygulamanızın bağımlı olduğu DLL'lerin listesini toplayın. Listeyi toplamanın bir yolu Dependency Walker 'ı (depends.exe) çalıştırmaktır.
Daha fazla bilgi için bkz. Hangi DLL'lerin Yeniden Dağıtılacağını Belirleme ve Dağıtım Yöntemi Seçme.
Visual Studio'da bulunan tüm dosyaları yeniden dağıtamazsınız; yalnızca Visual Studio 2013 Preview ve Visual Studio 2013 SDK Önizleme içinYeniden Dağıtılabilir Kod'da belirtilen dosyaları yeniden dağıtmanıza izin verilir. Uygulamaların ve çeşitli Visual C++ dinamik bağlantı kitaplıklarının hata ayıklama sürümleri yeniden dağıtılamaz.
Aşağıdaki kitaplıklar C çalışma zamanı kitaplığı işlevlerini içerir:
| Süre | Açıklama |
|---|---|
| Msvcr120.dll | C çalışma zamanı |
| Msvcp120.dll | C++ çalışma zamanı |
| Msvcr120d.dll | C çalışma zamanının hata ayıklama sürümü - yeniden dağıtıma izin verilmez |
| Msvcp120d.dll | C++ çalışma zamanının hata ayıklama sürümü - yeniden dağıtıma izin verilmez |