Domanda

Non abbiamo ancora bisogno di perdere tempo con Vcredist.exe durante la distribuzione di Windows applicazioni native? Fa uno di questi vengono forniti con Win-7?

In caso contrario, ci sono ragioni tecniche questi non sono spediti ad altri utenti utilizzando per esempio Windows Update - insteadof facendoci carico i clienti con ancora-another-cosa-that.must-lavoro? (Ok, che può sembrare polemico, ma sono davvero chiedendo il motivo per cui non sono installati di default queste librerie / aggiornamento su macchine Windows)

È stato utile?

Soluzione

Credo che dipende da come / cosa si è collegati. Se siete collegati direttamente al kernel32.dll ecc allora non importa, naturalmente (vale a dire la libreria di runtime C è incorporato), ma Microsoft sconsiglia tale metodo di distribuzione.

Se stai collegato attraverso MSVCR80 / 90/2010 qualunque is.dll, allora potrebbe essere necessario distribuire che libreria di runtime come su XP non sono di serie. MSVCR80 arriva su Vista, ma non msvcr90 Non credo - anche se potrebbe avere inserito da Windows Update. Eppure, non si può fare affidamento su di essa essere lì quindi il fail-safe è quello di avere una copia di esso per ogni evenienza.

Per quanto ne so Msvcrt.dll (che i collegamenti MinGW a) è distribuito con tutto> xp. Fa Link VC6 a questo? Non ho avuto VC ++ allora.

Date un'occhiata al file eseguibile con depends.exe da Windows SDK e capire cosa si tratta con ben oltre le parti della API di Windows.

Altri suggerimenti

Sì, lo fai. In caso contrario, il programma andrà in crash spettacolare quando si tenta di eseguirlo. Molti utenti non sono in esecuzione Win7, e anche allora non c'è modo di garantire loro il runtime installato senza includere nel vostro programma di installazione.

In alternativa, si potrebbe collegarsi con l'accumulo di elettricità statica del runtime, evitando la necessità di preoccuparsi con l'ridistribuibile C runtime.

Quando si compila con GCC ho sempre legame con MSVCRT.DLL che è sempre lì su XP e successivi.

Questo è in risposta al commento di Larry Osterman del 14 Apr alle 23:29:

Tu dici:

  

msvcrt.dll non è il runtime C. Si tratta di un componente interno di Windows non dovrebbe mai essere   utilizzata dalle applicazioni 3rd party. Noterete che non è possibile trovare tutti i riferimenti su MSDN   utilizzare questa DLL. C'era una volta 3rd applicazioni di terze parti utilizzate questo, ma che non è stato il   caso per circa 10 anni. - Larry Osterman 14 aprile alle 23:29

Questo sembrava andare contro l'intera premessa del sistema mingw che si basa su msvcrt.dll accesso e il tuo commento mi ha permesso di capire meglio come funziona MinGW. Si scopre che mingw utilizza ancora il Msvcrt.dll che è stato spedito nel 1998! Vedi questo link:

http://www.mingw.org/wiki/C99

Grazie,

Todd

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top