Fehler: Zugriff verweigert Fehlermeldung beim Kompilieren einer Visual Basic-Projekt mit einer öffentlichen UDT und Binär-Kompatibilität

Problembeschreibung

Wenn Sie ein Projekt öffnen und was IntelliSense verwendet, erhalten Sie eine Fehlermeldung "Zugriff verweigert", wenn Sie versuchen, das Projekt zu kompilieren. Das Projekt definiert eine öffentliche Benutzer definierten Typ (UDT), der als Parameter an eine öffentliche Funktion verwendet und Binär-Kompatibilität festgelegt.

Problemlösung

Speichern Sie das und schließen Sie das Projekt. Anschließend öffnen Sie das Projekt, und kompilieren.

Status

Microsoft hat bestätigt, dass es sich um einen Fehler in den Microsoft-Produkten handelt, die zu Beginn dieses Artikels aufgeführt sind.

Weitere Informationen

Beachten Sie, dass es andere Situationen, wo eine Fehlermeldung "Zugriff verweigert" angezeigt werden soll. Z. B. Wenn Sie eine andere Anwendung so testen Sie die DLL-Datei ausführen, können Sie nicht die DLL-Datei kompilieren, bis die andere Anwendung geschlossen und die DLL-Datei veröffentlicht.

Schritte zum Reproduzieren des Verhaltens

  1. Erstellen Sie in Visual Basic ein neues ActiveX-DLL-Projekt. "Class1" wird standardmäßig erstellt.
  2. Fügen Sie den folgenden Code auf Class1:
    Public Type MyType   type1 as integer
    type2 as integer
    End Type

    Public Function F1 (t as MyType)
    End Function

  3. Klicken Sie im Menü Datei auf Speichern Sie Projekt.
  4. Wählen Sie im Menü Datei zum Kompilieren des Projekts Stellen .
  5. Im Menü Projekt wählen Sie Eigenschaften, Registerkarte Komponente und Binärkompatibilität auf die kompilierte DLL-Datei festgelegt.
  6. Schließen Sie Visual Basic.
  7. Öffnen Sie Visual Basic erneut, und laden Sie das DLL-Projekt, das Sie gerade erstellt haben.
  8. Dropdownliste oben links im Codefenster Class1, heißt es "(Allgemein)", und wählen Sie Klasse. Dadurch wird den Cursor in der Class_Initialize-Prozedur. Geben Sie Err. an der IntelliSense. Sie können jetzt drücken die RÜCKTASTE löschen Err.. (Sie möchten nur anzeigen das IntelliSense, keine Codezeile zum Projekt hinzufügen.)
  9. Versuchen Sie, das Projekt kompilieren, und beachten Sie, dass Sie die Fehlermeldung "Zugriff verweigert".
  10. Speichern Sie das Projekt und schließen Sie die Visual Basic.
  11. Öffnen Sie Visual Basic, laden Sie das Projekt neu und beachten Sie, dass Sie es kompilieren können. Hinweis: anstatt Visual Basic in den vorherigen Schritten, Sie können auch ein neues Standard-EXE (oder jeden anderen Projekttyp) und Laden Sie das ActiveX-DLL-Projekt.
Eigenschaften

Artikelnummer: 282233 – Letzte Überarbeitung: 23.01.2017 – Revision: 1

Feedback