若要创建 COM 组件的实例,请将由 CreateObject 返回的对象赋给一个对象变量:
复制代码
Sub CreateADODB()
Dim adoApp As Object
adoApp = CreateObject(ADODB.Connection)
End Sub
用于存储返回对象的对象变量的类型可影响应用程序的性能。通过用 As Object 子句声明对象变量所创建的变量可以包含对任何对象类型的引用。然而,通过该变量访问对象是“后期绑定”,即绑定在程序运行时发生。由于包括应用程序性能降低在内的多种原因,应该避免后期绑定。
可以创建一个导致早期绑定的对象变量,即绑定在编译程序时发生。若要执行此操作,从“项目”菜单上“添加引用”对话框的“COM”选项卡中,为您的对象添加对类型库的引用。然后声明对象的特定类型的对象变量。大多数情况下,使用 Dim 语句和主 Interop 程序集来创建对象比使用 CreateObject 函数更为有效。
与非托管代码交互
另一个问题是 COM 对象使用非托管代码,即没有公共语言运行库优点的代码。在将 Visual Basic 的托管代码与来自 COM 的非托管代码混合时,将涉及到相当程度的复杂性。添加对 COM 对象的引用时,Visual Basic 会搜索该库的主互操作程序集 (PIA);如果找到一个程序集,就会使用它。如果未找到 PIA,它会创建包含 COM 库中每个类的本地互操作类的互操作程序集。有关更多信息,请参见 .NET Framework 应用程序中的 COM 互操作性。
通常,您应该尽可能使用强绑定对象和主互操作程序集。下面的示例仅出于演示的目的将 CreateObject 函数用于 Microsoft Office 对象。但是,当与适当的主 Interop 程序集一起使用时,这些对象将更易于使用,并且更加可靠。
在远程计算机上创建对象
您可以通过将计算机的名称传递到 CreateObject 函数的 ServerName 参数,在远程网络计算机上创建对象。该名称与共享名的“计算机名”部分相同。例如,如果共享名是“\\MyServer\Public”,则 ServerName 是“MyServer”。