Αναγν. άρθρου: 326922 - Τελευταία αναθεώρηση: Κυριακή, 29 Μαΐου 2011 - Αναθεώρηση: 6.0

Αναδιανομή του χρόνου εκτέλεσης c κοινόχρηστου στοιχείου σε Visual C++

Συμβουλή συστήματοςΑυτό το άρθρο ισχύει για διαφορετικό λειτουργικό σύστημα από αυτό που χρησιμοποιείτε. Το περιεχόμενο του άρθρου που ενδέχεται να μην σας αφορά έχει απενεργοποιηθεί.
Ανάπτυξη όλων | Σύμπτυξη όλων

Περίληψη

Όταν δημιουργείτε μια εφαρμογή στο Microsoft Visual Studio και η εφαρμογή χρησιμοποιεί τις βιβλιοθήκες χρόνου εκτέλεσης C (CRT), να διανείμετε το κατάλληλο αρχείο DLL CRT από την παρακάτω λίστα με την εφαρμογή:
  • Msvcr100.dll για Microsoft Visual C++ 2010
  • Msvcr90.dll για Microsoft Visual C++ 2008
  • Msvcr80.dll για Microsoft Visual C++ 2005
  • Msvcr71.dll για Microsoft Visual C++.NET 2003 με τη Microsoft.NET Framework 1.1
  • Msvcr70.dll για Microsoft Visual C++.NET 2002 με τη Microsoft.NET Framework 1.0
Για Msvcr70.dll ή Msvcr71.dll, πρέπει να εγκαταστήσετε το DLL CRT στον κατάλογο αρχείων προγράμματος εφαρμογής. Δεν θα πρέπει να εγκαταστήσετε αυτά τα αρχεία σε καταλόγους του συστήματος των Windows. Για Msvcr80.dll και Msvcr90.dll, θα πρέπει να εγκαταστήσετε το CRT ως Windows συγκροτήσεις side-by-side. Για Msvcr100.dll, μπορείτε να χρησιμοποιήσετε ένα packge VCREDIST_*.exe ή να εγκαταστήσετε το DLL CRT στον κατάλογο αρχείων προγράμματος εφαρμογής.

Περισσότερες πληροφορίες

Το DLL κοινόχρηστης CRT έχει διανεμηθεί από τη Microsoft στο παρελθόν ως στοιχείο συστήματος κοινόχρηστο (msvcp60.dll, κ.λπ.). Αυτό μπορεί να προκαλέσει προβλήματα κατά την εκτέλεση εφαρμογών που συνδέονται με μια διαφορετική έκδοση CRT σε υπολογιστές που δεν έχουν τις σωστές εκδόσεις του αρχείου DLL CRT εγκατεστημένο. Αυτό συνήθως αναφέρεται ως πρόβλημα "Διένεξη DLL".

Για να αντιμετωπίσετε αυτό το ζήτημα, CRT DLL δεν θεωρείται πλέον ένα αρχείο συστήματος, συνεπώς, να διανείμετε DLL CRT με οποιαδήποτε εφαρμογή που βασίζεται σε αυτό. Επειδή δεν είναι πλέον ένα στοιχείο συστήματος, εγκαταστήστε στον κατάλογο Program Files εφαρμογές με άλλο κώδικα συγκεκριμένη εφαρμογή. Αυτό εμποδίζει την εφαρμογή σας από τη χρήση άλλων εκδόσεων στη βιβλιοθήκη CRT, που μπορεί να εγκατασταθεί σε διαδρομές συστήματος.

Visual C++.NET 2003 ή Visual C++.NET 2002 εγκαθιστά το DLL CRT στον κατάλογο System32 σε ένα σύστημα ανάπτυξης. Αυτό είναι εγκατεστημένο την εξυπηρέτηση του προγραμματιστή. Διαφορετικά, όλα τα έργα που έχουν δημιουργηθεί με το Visual C++ που συνδέονται με κοινόχρηστους CRT απαιτούν ένα αντίγραφο του αρχείου DLL στον κατάλογο build για εντοπισμό σφαλμάτων και εκτέλεσης. Visual C++ 2005 και Visual C++ 2008 εγκατάσταση CRT DLL ως μια συγκρότηση side-by-side Windows στα Windows XP και νεότερες εκδόσεις λειτουργικών συστημάτων. Τα Windows 2000 υποστηρίζουν τις συγκροτήσεις side-by-side. Στα Windows 2000, το DLL CRT εγκαθίσταται στον κατάλογο System32.

Όταν διανέμετε εφαρμογές που απαιτούν τη βιβλιοθήκη κοινόχρηστων CRT στο CRT DLL, συνιστούμε να χρησιμοποιήσετε τη λειτουργική μονάδα συγχώνευσης CRT.msm που περιλαμβάνεται με Visual C++ αντί για απευθείας διανομή του αρχείου DLL.

Συγκροτήσεις side-by-side Windows

Msvcr80.dll με Visual C++ 2005 και Msvcr90.dll με Visual C++ 2008 ανακατανέμονται ως συγκροτήσεις side-by-side Windows εκτός από Windows 2000. Θα πρέπει να εγκαταστήσετε αυτές τις εκδόσεις του CRT στους υπολογιστές προορισμού εκτελώντας την εφαρμογή Vcredist_x86.exe που περιλαμβάνεται στο Visual Studio. Υπάρχουν επίσης προγράμματα εγκατάστασης για x 64 και IA-64 πλατφόρμες. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε τη λειτουργική μονάδα CRT msm συγχώνευσης που παρέχεται με το Visual Studio για πακέτο εγκατάστασης CRT σε δική σας εφαρμογή εγκατάστασης. Αυτό θα καταστήσει την CRT διαθέσιμη ως κοινόχρηστη συγκρότηση για όλες τις εφαρμογές επειδή είναι εγκατεστημένο στον κατάλογο \windows\winsxs υποστηριζόμενα λειτουργικά συστήματα.

Msvcr100.dll με Visual C++ 2010 να χρησιμοποιούν συγκροτήσεις side-by-side των Windows.

Αναφορές

Για περισσότερες πληροφορίες, επισκεφθείτε την ακόλουθη Microsoft Τοποθεσία Web Developer Network (MSDN):
http://msdn2.Microsoft.com/en-us/library/aa984514.aspx (http://msdn2.microsoft.com/en-us/library/aa984514.aspx)
Για περισσότερες πληροφορίες σχετικά με τα Windows συγκροτήσεις side-by-side, επισκεφθείτε τις ακόλουθες τοποθεσίες της Microsoft Developer Network (MSDN) στο Web:
http://msdn2.Microsoft.com/en-us/library/aa376307.aspx (http://msdn2.microsoft.com/en-us/library/aa376307.aspx)

http://msdn2.Microsoft.com/en-us/library/ms235624.aspx (http://msdn2.microsoft.com/en-us/library/ms235624.aspx)

http://msdn2.Microsoft.com/en-us/library/ms235342.aspx (http://msdn2.microsoft.com/en-us/library/ms235342.aspx)

Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Visual C++ 2008 Express Edition
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
Λέξεις-κλειδιά: 
kbinfo kbmt KB326922 KbMtel
Μηχανικά μεταφρασμένοΜηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:326922  (http://support.microsoft.com/kb/326922/en-us/ )