如果我在VB6项目中使用类型库(.tlb),我是否需要使用.exe进行分发?

时间:2010-05-10 16:43:13

标签: com vb6 typelib

如果我在VB6项目中使用类型库,我是否需要在目标计算机上使用已编译的exe分发.tlb文件(甚至可能注册它?)?

4 个答案:

答案 0 :(得分:1)

不,通常只有在您实际调用尝试使用类型库中的类型的代码时才需要它。我发现了一些例外,涉及使用类型库中的类型到维度变量。我认为这是这样的......

假设类型库定义了结构A,并且您的应用程序包含这样的过程。如果未注册类型库,则无法启动应用程序 - 将显示错误消息。

Sub testSub1(ByRef mybadarray() As A)

但这没关系

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

答案 1 :(得分:1)

根据我的经验,我总是将.TLB文件与.EXE一起分发,包括注册,这有助于我防止多个运行时错误,例如"运行时错误' 429':ActiveX组件无法创建对象"。

答案 2 :(得分:0)

不,不。它仅在编译时使用。

答案 3 :(得分:0)

仅当您使用多线程时,即ActiveX EXE或具有CoMarshalInterThreadInterfaceInStream等功能的进程内。