Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> C /C + + Προγραμματισμός

Πώς να καθορίσει C + + Runtime R6002

δημιουργείται η R6002 C σφάλμα χρόνου εκτέλεσης όταν ένα πρόγραμμα C που καταρτίζονται με μεταγλώττισης Microsoft προσπαθεί να εκτελέσει μια λειτουργία που απαιτεί floating-point υποστήριξη όταν floating-point βιβλιοθήκες δεν έχουν συνδεθεί με το πρόγραμμα . Η πιο πιθανή εξήγηση είναι ότι κανένας κώδικας floating-point ρητά περιλαμβάνονται στον κώδικα σας, και ο compiler υποτίθεται ότι δεν ήταν αναγκαίο . Αυτό μπορεί να προκληθεί από τη χρήση printf με το "% f " μορφή προσδιοριστή χωρίς να στείλει ένα πραγματικό επιχείρημα floating-point . Προσθέτοντας ρητή floating-point αναφοράς της πρόσκλησης είναι η πιο καθαρή λύση , αλλά μια άλλη λύση είναι δυνατή εάν η κλήση δεν μπορεί να εντοπιστεί ή σταθερό . Οδηγίες
Η 1

Αναζήτηση για κλήσεις προς printf ή scanf ( και των σχετικών λειτουργιών ) που έχουν μια προδιαγραφή για τη μορφή κινητής υποδιαστολής . " % f" είναι η πιο πιθανή προδιαγραφές , αλλά μπορεί να έχουν επίσης χρησιμοποιήσει " % e , " " % Ε ", " % g " ή " % G. " Είναι πιθανό ότι υπάρχουν σημαίες , μήκος ή μια προδιαγραφή ακρίβειας , καθώς και . Μια κανονική έκφραση που θα πρέπει να βρείτε όλες τις εμφανίσεις είναι " % . * [ FeEgG ] . " 2

Τροποποιήστε την κλήση της συνάρτησης να ρίχνει ρητά σε τύπο δεδομένων κινητής υποδιαστολής . Ο πιο συνηθισμένος λόγος που δεν θα είναι ήδη διέρχεται μια επιχείρημα floating-point είναι ότι ζητάτε τη λειτουργία printf για να μορφοποιήσετε τα δεδομένα αποθηκεύονται απευθείας σε έναν πίνακα byte . Οι λεπτομέρειες ασφαλή εκτέλεση του καστ θα εξαρτηθεί σε μεγάλο βαθμό από την ειδική εφαρμογή σας . Για λόγους σαφήνειας , μπορεί να θέλετε να μετακινήσετε τη μετατροπή σε floating-point σε μια νέα γραμμή .
Εικόνων 3

Προσθέστε μια αναφορά σε μια μεταβλητή κινητής υποδιαστολής , αν δεν μπορείτε να βρείτε ή να τροποποιήσει μια printf ή scanf κλήση . Αυτό θα αναγκάσει τον compiler να συμπεριλάβει τις απαραίτητες βιβλιοθήκες floating-point . Εάν δεν μπορείτε να εντοπίσετε την υπεύθυνη γραμμή στο δικό σας κώδικα , είναι πιθανό ότι μια βιβλιοθήκη που χρησιμοποιείτε προκαλεί το σφάλμα , και προσθέτοντας μια μεταβλητή κινητής υποδιαστολής είναι η απλούστερη λύση .
Εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα