2013-04-03 13 views
6

Al giorno d'oggi le librerie di runtime dinamiche per Visual C++ (più specificamente 2008) sono parte del sistema operativo Windows? Ho notato che almeno su Windows 8 non è più necessario spedirli con la tua applicazione o richiedere all'utente di installare il pacchetto ridistribuibile da Microsoft.Le librerie di runtime dinamiche di Visual C++ sono parte del sistema operativo Windows al giorno d'oggi?

È vero? In tal caso, per quali versioni di Windows e per quali versioni di Visual C++ si applica ciò?

+1

A proposito, se è necessario distribuire una piccola applicazione che deve essere eseguita senza dover installare nulla, è sempre possibile collegarsi staticamente al CRT. –

+1

Ricorda che è stato detto lo stesso per il CRT VC6. Se si desidera rimanere compatibili con le versioni future di Windows, attenersi alle regole oggi. Microsoft potrebbe introdurre di volta in volta modifiche irrisolte, ma queste riguardano principalmente programmi che non seguivano le migliori pratiche per cominciare. – MSalters

risposta

4

No, non sono mai stati parte della distribuzione di Windows. Distribuirli da soli è un requisito difficile.

Certamente è possibile che sembri che sono. A partire da msvcrt.dll nella directory system32, ha lo stesso nome della DLL di runtime di C++ nelle versioni di Visual Studio precedenti a VS2002 (VS6 e versioni precedenti). È tuttavia una copia privata del CRT utilizzata dagli eseguibili di Windows. E protetto dalla funzionalità di protezione del file system di Windows, che impedisce ai vecchi programmi di installazione di distruggere il sistema operativo.

Certamente funziona spesso per caso. Esistono molti programmi che richiedono Microsoft CRT, quindi non è improbabile che l'utente abbia eseguito un programma di installazione prima di aver installato le DLL. Chiaramente non puoi dipendere da quell'incidente comune.

Analogamente per Windows 8, il pacchetto Microsoft.VCLibs.110 preinstallato corrisponde al pacchetto necessario per un'app Store scritta in C++. Ma questo è per lo stesso motivo di cui sopra, i programmi di Microsoft Store sono stati creati anche con VS2012, proprio come il tuo. Quello che sta per succedere nel prossimo VS2013 è un po 'fangoso in questo momento, lo sapremo presto.

0

A mio parere, la risposta sarebbe sia: Sì e No.

  • : Più recente sistema operativo di Windows sono generalmente forniti con VC runtime preinstallato (insieme con le versioni più recenti del. Quadro NET). È perché Microsoft utilizza Visual Studio più recente/più recente prima di rilasciare VS al pubblico (o anche agli iscritti MSDN). In caso contrario, ogni volta che si installa un'applicazione (un'applicazione legacy o un'applicazione scaricata), l'installazione installa comunque il runtime VC++ richiesto. Un altro modo è attraverso gli aggiornamenti automatici.
  • No: nel caso in cui nessuna delle regole sopra menzionate si applichi. Oppure, quando il runtime VC viene fornito con un nuovo service pack o una patch. Potresti aver sviluppato la tua applicazione con la nuova patch/SP, e che deve essere installata (come Side-by-Side, ovviamente).