2014-06-06 4 views
6

In VBP-Dateien gibt es „Referenzen“ und „Objekte“ wie folgt:Verständnis VB6 Projektdateien (VBP)

Reference=*\G{D63E0CE2-A0A2-11D0-9C02-00C04FC99C8E}#2.0#0#..\..\..\WINDOWS\system32\msxml.dll#Microsoft XML, version 2.0 
Object={EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}#1.1#0; ieframe.dll 
  1. Was sind die Unterschiede zwischen diesen beiden sind? kehrt statt Objekt oder umge
  2. Warum werden einige DLLs über Referenz verwiesen wird?
  3. Wo ist die filepath für Objektreferenzen VB bekommen? Die Pfade sind nicht für sie in der VBP angegeben, und die GUID wird nicht angezeigt, wenn ich meine Registrierung suche! Wenn ich jedoch das Projekt lade, sucht VB nach dll/ocx/etc. auf irgendeinem absoluten Pfad (z.B. C:\path\to\dll\ieframe.dll). Woher bekommt es diesen Pfad, wenn er nicht in der Registry oder VBP ist ?!

Antwort

5

Object s sind für ActiveX-Steuerelemente, die in der Regel erstellt werden Dateien in .OCX. Reference s werden für Typbibliotheken normalerweise in .dll-Dateien oder .tlb-Dateien kompiliert. Beachten Sie, dass .ocx-Dateien auch typelib enthalten. Dies ist sehr inkonsistent und eine Legacy-Division.

Pfade und Dateinamen sind optional, Typelib-IDs sind die kanonische Methode, um Abhängigkeiten aufzulösen. Nur wenn diese nicht in der Registrierung gefunden werden, gibt es eine automatische Lösungsstrategie, die nur nach Dateien im aktuellen Ordner für .ocxes sucht. Dieses nervigste Verhalten tritt auch zur Laufzeit auf, wenn die Anwendungen im aktuellen Ordner die automatische Registrierung von .ocxes starten, wenn typelibs nicht gefunden werden, und häufig auf modernen Betriebssystemen fehlschlägt, weil keine Berechtigungen zum Schreiben in HKLM vorhanden sind.

Es gibt Object Zeilen in .frm/.ctl Quelldateien auch. Diese werden an das aktuelle Projekt angehängt, wenn das existierende Formular/usercontrol hinzugefügt wird.

Wenn ein OCX typelib als Reference Zeile hinzugefügt wird die IDE in der Regel nicht das Projekt und eine manuelle Bearbeitung laden benötigt.