2010-05-10 8 views

risposta

0

No, non è così. Viene usato solo in fase di compilazione.

0

Solo se si utilizza il multi-threading, ovvero EXE ActiveX o in-proc con funzioni CoMarshalInterThreadInterfaceInStream ecc.

1

No, di solito è necessario solo se si chiama effettivamente il codice che tenta di utilizzare i tipi dalla libreria dei tipi. Ho trovato alcune eccezioni, che riguardano l'utilizzo di tipi dalla libreria dei tipi alle variabili delle dimensioni. Penso che fosse qualcosa del genere ...

Supponendo che la libreria dei tipi definisca una struttura A e la tua app contenga una procedura come questa. Se la libreria dei tipi non è registrata, l'app non può essere avviata: viene visualizzato un messaggio di errore.

Sub testSub1(ByRef mybadarray() As A) 

ma questo sarebbe OK

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

Non sono chiaro su quale "codice utilizza il tipo". Quindi, se DIM una variabile come TYPE o imposta quella variabile su un valore, è considerato "utilizzare" il tipo? e in tal caso, ho bisogno di distribuire il .tlb? –

+0

http://stackoverflow.com/users/15639/markj Se posso ottenere un chiarimento sulla domanda di cui sopra, posso contrassegnare la tua risposta Accettata. Grazie! –

0

Nella mia esperienza, ho sempre distribuire file TLB con .EXE compresa la registrazione, mi ha aiutato a evitare che i molteplici errori di runtime come "Run -time error '429': il componente ActiveX non può creare oggetti ".

Problemi correlati