2010-05-10 11 views

Antwort

0

Nein, tun Sie nicht. Es wird nur zur Kompilierzeit verwendet.

0

Nur wenn Sie Multithreading verwenden, d. H. ActiveX EXEs oder In-Proc mit CoMarshalInterThreadInterfaceInStream usw. Funktionen.

1

Nein, normalerweise es wird nur benötigt, wenn Sie tatsächlich Code aufrufen, der versucht, die Typen aus der Typenbibliothek zu verwenden. Ich habe einige Ausnahmen gefunden, die die Verwendung von Typen aus der Typbibliothek zum Dimensionieren von Variablen beinhalten. Ich denke, es war so etwas ...

Angenommen, die Typbibliothek definiert eine Struktur A, und Ihre App enthält eine Prozedur wie diese. Wenn die Typbibliothek nicht registriert ist, kann Ihre App nicht gestartet werden - eine Fehlermeldung wird angezeigt.

Sub testSub1(ByRef mybadarray() As A) 

aber das wäre in Ordnung sein

Sub testSub2() 
    Dim ok As A ' OK provided you never actually Call testSub2 at runtime ' 
+0

Ich bin unklar, was "Code verwendet den Typ". Wenn ich also eine Variable als TYPE dimme oder diese Variable auf einen Wert setze, wird davon ausgegangen, dass sie den Typ "benutzt"? und in diesem Fall muss ich die .tlb verteilen? –

+0

http://stackoverflow.com/users/15639/markj Wenn ich die obige Frage klären kann, kann ich Ihre Antwort Akzeptieren markieren. Danke! –

0

Nach meiner Erfahrung habe ich immer verteilen TLB entlang Datei mit .EXE Anmeldung einschließlich, es hat mir geholfen, die mehrere Laufzeitfehler zu vermeiden wie „Run -time Fehler '429': ActiveX-Komponente kann kein Objekt erstellen ".