Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Εσωτερικές πληροφορίες υποστήριξης της Microsoft

Σφάλμα #: 101959 (Visual Studio)

Σύνοψη

Όταν δημιουργείτε ένα αρχείο DLL, χρησιμοποιώντας την έκδοση 64-bit, το πρόγραμμα μεταγλώττισης Microsoft Visual C++ και το πρόγραμμα σύνδεσης, ενδέχεται να εμφανιστεί το πρόγραμμα σύνδεσης αριθμός σφάλματος LNK4197 εάν μια συνάρτηση που έχει δηλωθεί για εξαγωγή περισσότερες από μία φορές.

Συμπτώματα

Το πρόγραμμα σύνδεσης εξόδου μπορεί να είναι παρόμοιο με το ακόλουθο:

C:\>link /NOLOGO /def:Sample.def /pdb:Sample.pdb /out:Sample.dll  Sample.objSample.obj : warning LNK4197: export 'DllSample' specified multiple times; using first specification   Creating library Sample.lib and object Sample.exp 

Αιτία

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

  • Η συνάρτηση δηλωθεί, χρησιμοποιώντας τη λέξη-κλειδί __declspec(dllexport) στο αρχείο προέλευσης "C":

    __declspec(dllexport) int DllSample() {   return 42;}
  • Η συνάρτηση δηλωθεί χρησιμοποιώντας ένα καθορισμού λειτουργικής μονάδας (. Αρχείο DEF):

    EXPORTS   DllSample

Αυτό το πρόγραμμα σύνδεσης σφάλμα παρουσιάζεται πιο συχνά όταν τόσο τη λέξη κλειδί __declspec(dllexport) και ένα. Αρχείο Ανάλυσης χρησιμοποιούνται για να ορίσουν το ίδιο όνομα συνάρτησης σε ένα. Το έργο DLL.

Επίλυση

Για να επιλύσετε αυτήν τη συμπεριφορά, ορίστε εξαγόμενο συναρτήσεις μόνο μία φορά, είτε χρησιμοποιώντας τη λέξη-κλειδί __declspec(dllexport) ή χρησιμοποιώντας ένα. Αρχείο Ανάλυσης. Μην χρησιμοποιήσετε και τις δύο από αυτές τις μεθόδους.

Κατάσταση

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

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

Η δήλωση μιας συνάρτησης για εξαγωγή περισσότερες από μία φορές δεν μπορεί να παράγει το σφάλμα πρόγραμμα σύνδεσης που περιγράφεται στην ενότητα "Συμπτώματα" αυτού του άρθρου σε εκδόσεις 32-bit του Microsoft Windows C++ μεταγλωττιστή και πρόγραμμα σύνδεσης. Ωστόσο, η Microsoft συνιστά να ορίσετε εξαγωγές συνάρτηση μόνο μία φορά σε εκδόσεις 32-bit και 64-bit των Windows C++ μεταγλωττιστή και πρόγραμμα σύνδεσης.

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

Σας ευχαριστούμε για τα σχόλιά σας!

×