Περιγραφή του σφάλματος χρόνου εκτέλεσης R6025 σε Visual C++

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 125749 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο ασχολείται με ένα ζήτημα που ενδέχεται να παρουσιαστεί όταν αναπτύσσετε ένα πρόγραμμα. Εάν εξακολουθείτε να αντιμετωπίζετε ένα ζήτημα που μοιάζει με εκείνο που περιγράφει αυτό το άρθρο, ίσως διαφορετικό ζήτημα. Για να αναζητήσετε θέματα που σχετίζονται με ένα συγκεκριμένο πρόβλημα, συμπεριλάβετε το όνομα του προϊόντος στην αναζήτησή σας για να περιορίσετε τα αποτελέσματα. Για να αντιμετωπίσετε παρόμοια ζητήματα, ανατρέξτε στην ενότητα "παρόμοια ζητήματα και προτεινόμενες αντιμετωπίσεις" παρακάτω σε αυτό το άρθρο.

Συμπτώματα

Το πρόγραμμα C++ αποτυγχάνει και αναφέρει το ακόλουθο χρόνου εκτέλεσης Σφάλμα:
Σφάλμα χρόνου εκτέλεσης R6025
-καθαρό εικονική λειτουργία κλήση

Αιτία

Αυτό το σφάλμα παρουσιάζεται όταν η εφαρμογή σας καλέσει έμμεσα ένα συνάρτηση αμιγώς εικονικού μέλους σε ένα περιβάλλον όπου μια κλήση στη συνάρτηση δεν είναι έγκυρη. Στις περισσότερες περιπτώσεις, το πρόγραμμα μεταγλώττισης εντοπίσει αυτό και αναφέρει το σφάλμα όταν Δημιουργία της εφαρμογής. Αλλά, ανάλογα με το πώς ο κώδικας είναι γραμμένο, μερικές φορές το πρόβλημα εντοπίζεται κατά το χρόνο εκτέλεσης.

Το σφάλμα παρουσιάζεται όταν κάνετε έμμεσα κλήση αμιγώς εικονική λειτουργία στο περιβάλλον κλήσης για το κατασκευή ή καταστροφέα μια αφηρημένη κλάση βάσης. Αυτό φαίνεται στο του δείγμα κώδικα κατωτέρω, μαζί με ορισμένες περισσότερες περιγραφή.

Προτεινόμενη αντιμετώπιση

Κλήση αμιγώς εικονική λειτουργία έτσι, είναι ένα σφάλμα προγραμματισμού πρέπει να βρείτε κλήση στη συνάρτηση αμιγώς εικονικού και έτσι επανεγγράψετε τον κωδικό δεν καλείται.

Ένας τρόπος για να βρείτε μια κλήση αμιγώς εικονική λειτουργία είναι η αντικατάσταση αμιγώς εικονική λειτουργία με μια εφαρμογή που καλεί το Συνάρτηση API των Windows DebugBreak. Όταν χρησιμοποιείτε το πρόγραμμα εντοπισμού σφαλμάτων DebugBreak will προκαλέσει μόνιμη σημείο διακοπής. Όταν σταματήσει η εκτέλεση σε αυτό το σημείο διακοπής, ο κώδικας Μπορείτε να προβάλετε τη στοίβα κλήσεων για να δείτε πού Έγινε κλήση της συνάρτησης.

Είναι ένας άλλος τρόπος για να βρείτε μια κλήση αμιγώς εικονική λειτουργία για να ορίσετε ένα σημείο διακοπής για το _purecall η συνάρτηση που βρίσκεται στο PureVirt.c. Πρόσφατες στη συνάρτηση αυτή έχει το πλεονέκτημα ότι διατηρώντας τη στοίβα ανέπαφη ώστε να μπορείτε να ανιχνεύσετε τι συμβαίνει.

Κατάσταση

Αυτή η συμπεριφορά είναι από Σχεδίαση.

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

Για περισσότερες πληροφορίες, ανατρέξτε το "C χρόνου εκτέλεσης σφάλματα R6002 μέσω R6025 "σελίδα της ενότητας "Δημιουργία σφάλματα" στο η ακόλουθη τοποθεσία Web του Microsoft Developer Network (MSDN):
.aspx http://msdn2.Microsoft.com/en-us/library/aa277044 (VS.60)
ΣΗΜΕΙΩΣΗ Σφάλμα R6025 δεν έχει τεκμηριωθεί στα εγχειρίδια ή ηλεκτρονική Βοήθεια περιλαμβάνονται με Visual C++, εκδόσεις 2.x ή κάτω. Ωστόσο, το εν συντομία αναλύεται στο Τμήμα 3 του αρχείου Readme.wri που αποστέλλονται με Visual C++ έκδοση 2.0.

Δείγμα κώδικα

   /* Compile options needed: none
   */ 

   class A;

   void fcn( A* );

   class A
   {
   public:
       virtual void f() = 0;
       A() { fcn( this ); }
   };

   class B : A
   {
       void f() { }
   };

   void fcn( A* p )
   {
       p->f();
   }

   // The declaration below invokes class B's constructor, which
   // first calls class A's constructor, which calls fcn. Then
   // fcn calls A::f, which is a pure virtual function, and
   // this causes the run-time error. B has not been constructed
   // at this point, so the B::f cannot be called. You would not
   // want it to be called because it could depend on something
   // in B that has not been initialized yet.

   B b;

   void main()
   {
   }
				

Παρόμοια ζητήματα και προτεινόμενες αντιμετωπίσεις

Εάν εξακολουθείτε να αντιμετωπίζετε ένα ζήτημα που μοιάζει με το ζήτημα που περιγράφει αυτό το άρθρο, ίσως διαφορετικό ζήτημα. Για περισσότερες πληροφορίες σχετικά με παρόμοια ζητήματα και προτεινόμενες αντιμετωπίσεις, κάντε κλικ στους αριθμούς των άρθρων παρακάτω, για να προβάλετε τα άρθρα της Γνωσιακής Βάσης της Microsoft:
240437Σφάλμα χρόνου εκτέλεσης Money: "R6025-κλήση συνάρτησης αμιγώς εικονικό"
308260 Με τον τρόπο αντιμετώπισης προβλημάτων που αφορούν σφάλματα δέσμης ενεργειών στον Internet Explorer 6 και στον Internet Explorer 7 σε υπολογιστές με Windows 2000, βασίζεται σε Windows XP, με Windows Server 2003 ή με Windows Vista
267572 WD2000: Μήνυμα λάθους: "σφάλμα χρόνου εκτέλεσης '5'" κατά την εκκίνηση του Word
170409 SBFM97: Εισαγωγή δεδομένων Quickbooks τα σφάλματα χρόνου εκτέλεσης MS Visual C++
309299 Σφάλμα χρόνου εκτέλεσης όταν κάνετε περιήγηση σε σελίδες Web

Ιδιότητες

Αναγν. άρθρου: 125749 - Τελευταία αναθεώρηση: Παρασκευή, 23 Σεπτεμβρίου 2011 - Αναθεώρηση: 5.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • 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
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 2.0 Professional Edition
  • Microsoft Visual C++ 1.5 Professional Edition
Λέξεις-κλειδιά: 
kbresolve kbtshoot kbcompiler kbcpponly kberrmsg kbprb kbmt KB125749 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:125749

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com