2013-04-03 16 views
6

Czy biblioteki dynamicznego środowiska wykonawczego dla Visual C++ (dokładniej 2008) są częścią systemu operacyjnego Windows w dzisiejszych czasach? Zauważyłem, że przynajmniej w systemie Windows 8 nie musisz już wysyłać ich razem z aplikacją ani nie instaluj pakietu redystrybucyjnego od firmy Microsoft.Czy biblioteki dynamiczne środowiska wykonawczego Visual C++ są obecnie częścią systemu operacyjnego Windows?

Czy to prawda? Jeśli tak, to do jakich wersji systemu Windows i do jakich wersji programu Visual C++ ma to zastosowanie?

+1

Nawiasem mówiąc, jeśli potrzebujesz rozpowszechniać małą aplikację, która musi działać bez konieczności instalowania czegokolwiek, zawsze możesz wybrać opcję statycznego połączenia z CRT. –

+1

Należy pamiętać, że to samo zostało powiedziane o CRT VC6. Jeśli chcesz zachować kompatybilność z przyszłymi wersjami systemu Windows, trzymaj się reguł dzisiaj. Firma Microsoft może wprowadzać zmiany od czasu do czasu, ale najczęściej dotyczą one programów, które na początku nie były zgodne z najlepszymi praktykami. – MSalters

Odpowiedz

4

Nie, nigdy nie były częścią dystrybucji Windows. Wdrożenie ich samodzielnie jest trudnym wymogiem.

Z pewnością może wydaje się, że są one. Począwszy od msvcrt.dll w katalogu system32, ma tę samą nazwę co biblioteka uruchomieniowa C++ w wersjach Visual Studio wcześniejszych niż VS2002 (VS6 i wcześniejsze). Jest to jednak prywatna kopia CRT używana przez pliki wykonywalne Windows. I chroniony przez funkcję ochrony systemu plików w systemie Windows, co zapobiega starszym instalatorom niszczenia systemu operacyjnego.

Z pewnością często działa przez przypadek. Istnieją programy wielu, które wymagają Microsoft CRT, więc nie jest mało prawdopodobne, że użytkownik uruchomił instalator przed zainstalowaniem bibliotek DLL. Oczywiście nie można polegać na tym powszechnym wypadku.

Podobnie jak w przypadku systemu Windows 8, wstępnie zainstalowany pakiet Microsoft.VCLibs.110 pasuje do pakietu, którego potrzebujesz do aplikacji Store napisanej w języku C++. Ale to z tego samego powodu, jak programy Microsoft Store zostały również zbudowane z VS2012, podobnie jak twoje. To, co wydarzy się w nadchodzącym VS2013, jest teraz trochę mętne, wkrótce się dowiemy.

0

Moim zdaniem, odpowiedź byłaby zarówno: Tak i Nie

  • Tak: Nowsze system operacyjny Windows są zazwyczaj dostarczane z VC środowisko wykonawcze preinstalowany (wraz z nowszych wersjach. NET Framework). Dzieje się tak dlatego, że Microsoft używa najnowszego/nowszego Visual Studio, zanim udostępni VS publicznie (lub nawet subskrybentom MSDN). Jeśli nie w ten sposób, podczas instalacji jakiejś aplikacji (starszej aplikacji lub pobranej aplikacji), instalacja powinna zainstalować wymagane środowisko wykonawcze VC++. Innym sposobem jest automatyczne aktualizacje.
  • Nie: W przypadku, gdy nie ma zastosowania żadna z powyższych zasad. Lub, gdy środowisko wykonawcze VC jest dostarczane z nowym dodatkiem Service Pack lub łatką. Mogłeś opracować swoją aplikację z nowszą łatką/SP i to musi być zainstalowane (oczywiście Side-by-Side).