Μέχρι τώρα, έχετε ελπίζει ότι έχετε δει τη λειτουργία μου σε Windows 64-bit στο τελευταίο τεύχος τουPC Pro. Και ίσως αποκτήσατε κάποια άνεση από τις ανεπιτήδευτες διαβεβαιώσεις μου ότι δεν χρειάζεται να ανησυχείτε πάρα πολύ για τη συμβατότητα των εφαρμογών. Σχεδόν όλο το σύγχρονο λογισμικό 32-bit θα πρέπει να εγκατασταθεί και να εκτελεστεί άψογα σε μια έκδοση 64-bit των Windows.
Φυσικά, όποτε γράφετε κάτι τέτοιο, ζητάτε προβλήματα.
πώς να παίξετε εστίες με φίλους
Σίγουρα, καθώς το τεύχος του Σεπτεμβρίου έφτασε στα περίπτερα, το ανακάλυψαPC ProΟ εσωτερικός πελάτης CMS δούλεψε μόνο - το μαντέψατε - 32-bit Windows. Προσπάθησα να δημιουργήσω μια νέα κριτική από την επιφάνεια εργασίας μου 64-bit απέδωσε μόνο ένα σκοτεινό σφάλμα σχετικά με ένα εργοστάσιο κλάσης COM που λείπει.
Που φέρουν τις σημαίες
Λίγο σκάψιμο ανακάλυψε το πρόβλημα. Κάποιος άτακτος προγραμματιστής είχε γράψει μια απολύτως έγκυρη εφαρμογή 32-bit .NET, αλλά είχε παραμελήσει να την επισημάνει ως συγκεκριμένα κώδικα 32-bit. Επομένως, τα Windows 64-bit τα χρησιμοποιούσαν σε λειτουργία 64-bit, προκαλώντας σφάλματα όταν το λογισμικό δεν μπορούσε να αποκτήσει πρόσβαση στους πόρους του συστήματος 32-bit που περίμενε.
Ευτυχώς, αυτό είναι ένα εύκολο πρόβλημα να επιλυθεί. Microsoft CorFlags εργαλείο γραμμής εντολών - μέρος του .NET Framework - σας επιτρέπει να τροποποιήσετε τις σημαίες κεφαλίδας σε εκτελέσιμα αρχεία, συμπεριλαμβανομένης αυτής που καθορίζει πότε πρέπει να εκτελεστεί μια εφαρμογή σε λειτουργία 32-bit. Ο καθορισμός αυτής της σημαίας για την εφαρμογή βάσης δεδομένων ήταν απλό θέμα πληκτρολόγησης CorFlags application.exe / 32bit +
Καιεδώ- μία εφαρμογή 32-bit που λειτουργεί τέλεια σε Windows 64-bit. Αξίζει να δοκιμάσετε αν αντιμετωπίσετε ποτέ παρόμοιο πρόβλημα.
πώς να εμφανίσετε το ping στο πρωτάθλημα
Ποιος φάκελος αρχείων προγραμμάτων;
Ενώ ασχολούμαι με το θέμα, παρουσιάζεται ένα σχετικό πρόβλημα που αντιμετωπίζαμε όταν ξεκινήσαμε να εξετάζουμε υπολογιστές με 64-bit Vista. Σε αυτήν την περίπτωση το ενοχλητικό λογισμικό δεν ήταν άλλο από τοPC Proσουίτα αναφοράς πραγματικού κόσμου. Όλα φαινόταν να εγκαθίστανται τέλεια, αλλά όταν ξεκινήσαμε πραγματικά τις δοκιμές, λάβαμε πόρους που δεν βρήκαν σφάλματα.
Ξεκίνησα να εντοπίζω το πρόβλημα με τη βοήθεια του SysInternals's απαραίτητο Παρακολούθηση διαδικασίας χρησιμότητα, και για άλλη μια φορά, η εξήγηση αποδείχθηκε πολύ απλή (τόσο απλή, στην πραγματικότητα, που ένιωσα λίγο ανόητο που δεν το έκανα μόνος μου).
Δεν βρέθηκαν διάφορα αρχεία, επειδή στα Windows 64-bit ο φάκελος Program Files προορίζεται μόνο για εφαρμογές 64-bit. Τα προγράμματα 32-bit εγκαθίστανται σε ένα φάκελο με το όνομα Program Files (x86). Τα δοκιμαστικά σενάρια μας περιλάμβαναν διαδρομές με σκληρή κωδικοποίηση που απέτυχαν επειδή οι εφαρμογές 32 bit δεν βρίσκονταν στη συνήθη τοποθεσία τους.
πώς να διαγράψετε το imessage σε mac
Εάν συναντήσετε ένα τέτοιο πρόβλημα, μπορείτε εύκολα να το διορθώσετε αφαιρώντας ρητές αναφορές στο C: Program Files και χρησιμοποιώντας το% ProgramFiles% (αυτή η έξυπνη μεταβλητή περιβάλλοντος θα πρέπει να επιλυθεί είτε σε Program Program είτε σε Files Program (x86) ανάλογα με αν η διαδικασία που το ονομάζει είναι 64-bit ή 32-bit). Εάν δεν μπορείτε να φτάσετε στην πηγή για να αλλάξετε τις διαδρομές, μια γρήγορη και βρώμικη λύση είναι να αντιγράψετε με μη αυτόματο τρόπο τα αρχεία 32-bit στα Αρχεία προγράμματος. Μόλις το έκανα αυτό, τα σημεία αναφοράς μας έτρεχαν χωρίς εμπόδια.
Λοιπόν το έχετε: 32-bit εφαρμογέςκάνωτρέχετε σε Windows 64-bit… αλλά μερικές φορές πρέπει να επεξεργαστείτε μερικές παραδοχές προγραμματιστή για να τις ξεκινήσετε!