none
Export der Information einer TLB-Datei RRS feed

  • Frage

  • Gibt es eine Möglichkeit die Informationen einer TLB-Datei, so wie sie in Visual Studio  im Object Browser dargestellt werden in eine Textdatei (besser XML-Datei) zu exportiern?

    Fertiges Tool oder auch HowTo?

    Donnerstag, 2. Juni 2011 03:12

Antworten

Alle Antworten

  • Hallo Werner,

    man kann oft die TLB nehmen und über oleview.exe -> "View TypeLib" schliesslich mittels "File/Save as IDL" in das lesbare IDL Format konvertieren.
    Das ist das natürliche lesbare Format für TLBs. XML wäre letztlich über mehrere Umwege sicher möglich, aber IMHO eher nicht empfehlenswert. 

     

     


    ciao Frank
    Donnerstag, 2. Juni 2011 10:16
  • Hallo Frank,

    zuerst einmal danke für Deinen Hinweis.

    Gibt es irgendwie eine Beschreibung dieses Formates?

    Ich möchte solch eine Datei automatisch weiter verarbeiten können, und mit XML kann ich inzwischen gut umgehen, und da würde ich mir auf jeden Fall zuerst einmal eine XML-Datei erzeugen, aber ohne Beschreibung dürfte das etwas schwierig werden.

    Ich glaube ich war zu schnell, auf den dritten Blick erkenne ich ich eine gewisse Systematik. Das sollte vielleicht reichen. ;-)

     

    Gruß

    Werner

     

     

     

     


    Donnerstag, 2. Juni 2011 11:22
  • Es gibt da schon was. TLB2XML zum Beispiel, ist sogar Open Source glaube ich.
    Ansonsten gibt es von Microsoft das ActiveX Control TlbInf32.dll damit kann man die Informationen sehr gut auslesen.
    Man braucht natürlich Kentnnise über die COM Anatomie.
    Donnerstag, 2. Juni 2011 11:36
  • Hallo Werner,

    Du könntest die Typbibliothek in eine .NET-Assembly konvertieren und dann über Reflection (oder die versatile Cecil-Bibliothek) die gewünschten Metadaten im XML-Format speichern (bzw. serialisieren). Die Klasse TypeLibConverter ermöglicht eine solche Konversion.

    Importieren einer Typbibliothek:
    http://msdn.microsoft.com/de-de/library/xwzy44e4.aspx

    Zusammenfassung: Konvertieren einer Typbibliothek in eine Assembly:
    http://msdn.microsoft.com/de-de/library/xwzy44e4.aspx 

    Details zu IDL in: Interface Definitions and Type Libraries
    http://msdn.microsoft.com/en-us/library/aa367061(v=VS.85).aspx

    Wie Alfred schon sagte, gibt es auch schon einige Tools, die bestimmte Informationen aus den TLB-Dateien extrahieren können. Hier noch ein Hinweis:

    Dan McKinley - TLB to XML (source code):
    http://mcfunley.com/363/tlb-to-xml

    Gruß
    Marcel


    Donnerstag, 2. Juni 2011 11:50
    Moderator
  • Hallo Alfred,

    Es gibt da schon was. TLB2XML zum Beispiel, ist sogar Open Source glaube ich.

    Sieht gar nicht schlecht aus, produziert mir zwar im Moment eine Datei mit Syntaxfehlern. Da muss ich noch nach der Ursache forschen.

    Ansonsten gibt es von Microsoft das ActiveX Control TlbInf32.dll damit kann man die Informationen sehr gut auslesen.
    Man braucht natürlich Kentnnise über die COM Anatomie.

    Kenntnisse ja, aber genug?  ;-) Ich schau mal.

    Danke und Gruß

    Werner


    Donnerstag, 2. Juni 2011 12:04
  • Hallo Marcel,

    reichlich Stoff, danke. Ich schau's mir an.

    Gruß

    Werner

    Donnerstag, 2. Juni 2011 12:06
  • Hallo Werner,

    • Ich glaube ich war zu schnell, auf den dritten Blick erkenne ich ich eine gewisse Systematik. Das sollte vielleicht reichen. ;-)

    ja, freut mich.

    Ist wirklich "der" Standard für eine TLB "Beschreibung". Beschreibungen findet man u.a. hier:

    [Understanding Interface Definition Language: A Developer's Survival Guide--MSJ, August 1998]
    http://www.microsoft.com/msj/0898/idl/idl.aspx

    [Interface Definitions and Type Libraries (Windows)]
    http://msdn.microsoft.com/en-us/library/aa367061(v=VS.85).aspx

    Eigentlich braucht man die nicht wirklich, denn man versteht die Sprache so auch schon ganz gut.
    Erst recht, wenn man dann öfter damit zu tun hat. Aber Alfred und Marcel haben ja unterdessen auch schon Links zu IDL und XML gefunden.

     

     


    ciao Frank
    Donnerstag, 2. Juni 2011 14:09
  • Hallo Frank,

    nochmals danke, ich denke, jetzt habe ich alles, was ich brauche.

    Gruß

    Werner

     

     

    Donnerstag, 2. Juni 2011 15:22