Frage

Ich habe versucht, die meiste Zeit des Tages heute eine OCX-Datei in einer meiner VB6-Projekte zu laden. Ich habe versucht, die COM-Registrierung in der Registrierung überprüft das Beste, was ich weiß, wie und haben mehrmals versucht, mit REGSVR32 auf die Datei ohne Erfolg. Alles, was ich von VB6 immer halten, wenn ich versuche, die Komponente zu laden (unter Projekt -> Komponenten) ist ‚FilePath \ FileName.ocx‘ kann nicht geladen werden. Hat jemand schon gesehen, und wenn ja, irgendwelche Ideen, wie man es beheben?

War es hilfreich?

Lösung

Dies kann ein Abhängigkeitsproblem sein - einige andere Komponenten durch die OCX benötigt werden, sind nicht vorhanden. Dependency Walker werden alle statischen Abhängigkeiten finden.

Andere Tipps

Nur ein paar Tipps, um das Problem zu isolieren ....

Sehen Sie sich die Steuerung mit OleView

Überprüfen Sie den Namen: wenn es eines der reservierten Wörter wie ‚Menü‘ ist, VB6 wird es nicht geladen werden. (Obwohl VB6 werden Sie glücklich lassen schaffen (und Verwendung) eine mit einem schlechten Namen, bis sie gespeichert und wieder geladen wird)

Überprüfen Sie die Schnittstelle: Ist es die Funktionalität beschreiben? Sie können eine beschädigte oder nicht lizenzierte ocx haben.

Versuchen Sie es mit dem ActiveX Control Test-Container zu laden ... Wenn Sie können, ist das Problem mit VB6 und nicht die ocx.

Wir setzten vor kurzem ähnliche Fehler. In unserem Fall war der Fehler in der Visual Basic-Projekt (.vbp-Datei). Projektdatei hatte außerhalb standardisierte Build-Rechner bearbeitet und enthalten Verweise auf OCX Komponenten -. Einschließlich Workstation bestimmte Pfade und Versionen der Komponenten

Sie können entweder bearbeiten, um die die Projektdatei im Texteditor oder eine funktionierende Version aus der Versionskontrolle erhalten.

Un-Registrierung und Registrierung arbeitete wieder für mich auch.
Bitte beachten Sie, dass Sie diese Komponente registrieren müssen mit folgenden Syntax:

regsvr32 /i:design olch2x8.ocx

Wenn Sie sagen, Sie „REGSVR32 auf die Datei ohne Erfolg“ verwendet haben, meinen Sie, dass Sie eine Dateinamen bekommen gelang Nachricht, oder eine Fehlermeldung? Wenn die Registrierung der Datei CMB gelingt, ist wahrscheinlich Recht, über die ocx ist nicht lizenziert.

Lizenzierung beiseite, es gibt ein paar andere Auslösepunkte mit VB6. Vor allem , wenn die OCX wurde in VB6 entwickelt.

Wenn ja, die ‚offiziell‘ System registrierte Version mit dem spezifischen Konflikt stehen könnte ocx Sie verwenden. Mit anderen Worten, könnte sie beide haben den gleichen Eigennamen (oder classid), aber derjenige bist versuchen Sie alle Funktionen im System ein registriert beschrieben nicht implementieren kann verwendet werden (das heißt Sie haben eine weniger entwickelte Version). Dies ergibt sich, wenn der Autor wünscht binäre Kompatibilität zu halten, während die Funktionalität einer Steuerung zu verbessern. Solange die öffentlichen Schnittstellen kompatibel bleiben, werden vb nicht die classid neu berechnen.

Sie können dieses Problem beheben, indem gewaltsam die spezifische Steuerung enfernen (deregistrieren tatsächlich alle Instanzen der Kontrolle). (Regsvr32 / u control.ocx) Dann erneut registrieren die, die Sie verwenden möchten. Stellen Sie sicher, dass keine laufende Instanz von VB6 liegt vor, wenn Sie dies tun, oder die Ergebnisse möglicherweise nicht. (Überprüfen Sie Ihre Aufgabenliste)

Ich hoffe, das hilft ...

Die Steuerung kann auf einem anderen DLL oder OCX angewiesen sein, oder nicht registriert werden können, fehlt, und diese könnte manifestieren sich als VB berichten, dass die Kontrolle, die Sie verwenden möchten, ist vorhanden. Allerdings bin ich mir nicht sicher, wie Sie die Abhängigkeiten identifizieren würden. Soweit ich weiß, identifiziert Dependency Walker statische Abhängigkeiten; Ich bin mir nicht sicher, ob es COM Abhängigkeiten identifizieren kann.

Un registrieren die Ocx erneut registrieren, um die ocx dann das Projekt wieder geladen in VB6, ist es für mich gearbeitet.

Danke an alle

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top