ΕΠΙΔΙΌΡΘΩΣΗ: Εκτέλεση side-by-side των Windows δεν υποστηρίζεται για στοιχεία ελέγχου ActiveX του Visual Basic 6.0

Σφάλμα #: 48904 (Windows SE)σφάλμα #: 90057 (Windows SE)σφάλμα #: 2107 (VSQFE)

Συμπτώματα

Στα Microsoft Windows XP και νεότερες εκδόσεις, μπορείτε να εκτελέσετε λειτουργικών μονάδων DLL του μοντέλου αντικειμένου στοιχείου (COM) σε λειτουργία σε παράθεση (SxS). Με SxS, διαφορετικές εκδόσεις ενός αρχείου DLL COM να συνυπάρχουν στο ίδιο περιβάλλον υπολογιστή χωρίς διένεξη. Αυτή η συμπεριφορά προκύπτει, χρησιμοποιώντας τα αρχεία .manifest που καθορίζουν πώς ένα πρόγραμμα μπορεί να συνδεθεί με ένα συγκεκριμένο COM DLL. Τα στοιχεία ελέγχου ActiveX του Microsoft Visual Basic 6.0 είναι ουσιαστικά το COM DLL λειτουργικές μονάδες με επεκτάσεις ονόματος αρχείο .ocx. Εάν προσπαθείτε να ρυθμίσετε τις παραμέτρους αυτών των λειτουργικών μονάδων για SxS λειτουργία στα Windows XP, λαμβάνετε το ακόλουθο μήνυμα λάθους:

Σφάλμα χρόνου εκτέλεσης '336' στοιχείων μη σωστή καταχώρηση.

Αιτία

Αυτό το ζήτημα παρουσιάζεται επειδή χρόνους εκτέλεσης των Windows και του Visual Basic δεν υποστηρίζουν τη ρύθμιση παραμέτρων των SxS εκτέλεσης των στοιχείων ελέγχου ActiveX του Visual Basic 6.0.

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

Για την πλήρη επίλυση αυτού του προβλήματος πρέπει να έχετε και τα δύο από τα εξής:
  • Η έκδοση του χρόνου εκτέλεσης Visual Basic που περιλαμβάνεται με το Visual Basic 6 Service Pack 6 (SP6)
  • Windows XP Service Pack 2 (SP2)
Για πρόσθετες πληροφορίες σχετικά με τον τρόπο απόκτησης του τελευταίου χρόνου εκτέλεσης της Visual Basic, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

290887 VBRun60sp6.exe εγκαθιστά τα αρχεία χρόνου εκτέλεσης Visual Basic 6.0 SP6

Για να αποκτήσετε το Windows XP SP2, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web (Knowledge Base):Εάν δεν μπορείτε να εγκαταστήσετε το Windows XP SP2, μπορείτε να αποκτήσετε την ενημέρωση κώδικα των Windows XP ως επείγουσα επιδιόρθωση. Για πρόσθετες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

843524 ΕΠΙΔΙΌΡΘΩΣΗ: δήλωση λειτουργική μονάδα Side-by-side COM DLL για το Visual Basic 6.0 στοιχεία ελέγχου ActiveX παρακάμπτεται από το μητρώο στα Windows XP

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

Για να ενεργοποιήσετε αυτήν την ενημέρωση κώδικα, πρέπει να προσθέσετε πεδία τα αρχεία .manifest. Το ακόλουθο είναι ένα δείγμα αρχείου .manifest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" name="control.ocx" version="1.0.0.0" processorArchitecture="x86"/>
<file name="control.ocx">
<comClass description="Sub control" clsid="{76548630-0CC8-48E4-B471-A9001865AE65}"
miscStatus="recomposeonresize,cantlinkinside,insideout,activatewhenvisible,setclientsitefirst"
progid="Control.TextBox" threadingModel="Apartment"
tlbid="{8A1ADF05-8164-4D5B-9267-FA74E601D826}"/>
<typelib tlbid="{8A1ADF05-8164-4D5B-9267-FA74E601D826}" version="1.0" helpdir=""/>
</file>
</assembly>
Παρατηρήστε ότι έχει προστεθεί το χαρακτηριστικό miscStatus . Τώρα πέντε νέα χαρακτηριστικά είναι διαθέσιμα στο στοιχείο συγκρότησης ή στο στοιχείο comClass για να απεικονίσετε τις διάφορες τιμές DVASPECT που είναι διαθέσιμες:
ΧαρακτηριστικόΣημείωση
miscStatusΟι σημαίες κατάστασης προεπιλογή που λαμβάνονται όταν θεωρείτε το 0 για το όρισμα dwAspect για το API OleRegGetMiscStatus
miscStatusIconΧάρτες για DVASPECT_ICON
miscStatusThumbnailΧάρτες για DVASPECT_THUMBNAIL
miscStatusDocPrintΧάρτες για DVASPECT_CONTENT
miscStatusContentΧάρτες για DVASPECT_CONTENT
Για κάθε πλευρά, το ακόλουθο σύνολο σημαιών μπορεί να οριστεί ως μια λίστα διαχωρισμένη με κόμματα. Μην χρησιμοποιείτε χαρακτήρες ΔΙΑΣΤΉΜΑΤΟΣ (""), αλλά οι σημαίες μπορεί να αναμειγνύονται πεζά και κεφαλαία. Αυτά τα στοιχεία λαμβάνονται από την απαρίθμηση σημαία OLEMISC.
Recomposeonresize
Onlyiconic
Insertnotreplace
ΣτατικόCantlinkinsideCanlinkbyole1
IslinkobjectInsideoutActivatewhenvisible
RenderingisdeviceindependentInvisibleatruntimeAlwaysrun
ActslikebuttonActslikelabelNouiactivate
AlignableSimpleframeSetclientsitefirst
IMEModeIgnoreactivatewhenvisibleWantstomenumerge
Supportsmultilevelundo
Παρατηρήστε ότι πρέπει επίσης να χρησιμοποιήσετε το χαρακτηριστικό tlbid του στοιχείου συγκρότησης ή το στοιχείο comClass για να υποδείξετε ποια βιβλιοθήκη τύπων της κλάσης COM που προέρχεται από για το χρόνο εκτέλεσης για να το επιλύσετε σωστά.

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".
Ιδιότητες

Αναγνωριστικό άρθρου: 828629 - Τελευταία αναθεώρηση: 17 Ιαν 2017 - Αναθεώρηση: 1

Σχόλια