Se utilizzo una libreria di tipi in un progetto VB6 devo distribuire il file .tlb (e forse anche registrarlo?) Con l'exe compilato sul computer di destinazione?Se utilizzo una libreria di tipi (.tlb) in un progetto VB6, devo distribuirlo con l'exe?
risposta
No, non è così. Viene usato solo in fase di compilazione.
Solo se si utilizza il multi-threading, ovvero EXE ActiveX o in-proc con funzioni CoMarshalInterThreadInterfaceInStream
ecc.
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 '
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 ".
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? –
http://stackoverflow.com/users/15639/markj Se posso ottenere un chiarimento sulla domanda di cui sopra, posso contrassegnare la tua risposta Accettata. Grazie! –