Ich versuche, die IDL-Datei für die Typbibliothek eines komplexen ActiveX-Steuerelements zu erstellen, das mit VB6 erstellt wird. Ich habe versucht, dies mit OleView.exe auf meinem Entwicklungs-PC mit 64-Bit-Win10 Pro zu tun. Die x64-Version von OleView stürzt einfach ab, wenn ich versuche, die OCX-Datei oder den daraus extrahierten TLB zu öffnen. Die x86-Version zeigt mir das folgende Fehlerfeld zweimal:OleView.exe kann die Typbibliothek, die aus VB6 OCX extrahiert wurde, nicht dekompilieren
Vielleicht die TLB-Datei mehr importlib
Richtlinien hat und OleView kann die referenzierten Dateien nicht finden. Ich konnte die OCA-Datei für die Komponente in OleView sehen, und seine IDL Äquivalent enthält diese Zeilen an der Spitze:
// TLib : // TLib : Visual Basic objects and procedures : {FCFB3D2E-A0FA-1068-A738-08002B3371B5}
importlib("VB6.OLB");
// TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
importlib("stdole2.tlb");
// TLib : Visual Basic runtime objects and procedures : {EA544A21-C82D-11D1-A3E4-00A0C90AEA82}
importlib("3");
Wie man dieses Problem mit OleView lösen? Oder gibt es ein anderes Tool, um TLB in IDL zu konvertieren?
Es kann die Typbibliotheken in der * Registrierung * nicht finden, nichts mit Dateien zu tun. Sie müssen VB6 auf dem Computer installiert haben und diese OCX korrekt registriert haben. –
@HansPassant, VB6 wurde von der ursprünglichen VS98-CD installiert. VB6.OLB ist registriert: sein Registrierungsschlüssel 'HKEY_CLASSES_ROOT \ TypeLib \ {FCFB3D2E-A0FA-1068-A738-08002B3371B5} \ 6.0 \ 9 \ win32' verweist auf den richtigen Speicherort. Das einzige Problem könnte sein, dass die Bibliothek "3" auf "C: \ Windows \ SysWOW64 \ msvbvm60.dll \ 3" zeigt. Irgendwelche anderen Gedanken? – TecMan
Nun, keine Ahnung, verwenden Sie SysInternals Process Monitor. Sie sollten sehen, dass oleview.exe die Registrierung durchsucht und nicht die Typbibliothek findet, über die sie sich beschweren. –