Interaction.CreateObject(String, String) Yöntem

Tanım

COM nesnesine bir başvuru oluşturur ve döndürür.Creates and returns a reference to a COM object. CreateObject Bu sınıflar açıkça COM bileşenleri olarak gösterilmediği sürece Visual Basic sınıf örnekleri oluşturmak için kullanılamaz.CreateObject cannot be used to create instances of classes in Visual Basic unless those classes are explicitly exposed as COM components.

public static object CreateObject (string ProgId, string? ServerName = "");
public static object CreateObject (string ProgId, string ServerName = "");
static member CreateObject : string * string -> obj
Public Function CreateObject (ProgId As String, Optional ServerName As String = "") As Object

Parametreler

ProgId
String

Gereklidir.Required. String.String. Oluşturulacak nesnenin program KIMLIĞI.The program ID of the object to create.

ServerName
String

İsteğe bağlı.Optional. String.String. Nesnenin oluşturulacağı ağ sunucusunun adı.The name of the network server where the object will be created. ServerNameBoş bir dize ("") ise, yerel bilgisayar kullanılır.If ServerName is an empty string (""), the local computer is used.

Döndürülenler

Object

COM nesnesine bir başvuru oluşturur ve döndürür.Creates and returns a reference to a COM object. CreateObject Bu sınıflar açıkça COM bileşenleri olarak gösterilmediği sürece Visual Basic sınıf örnekleri oluşturmak için kullanılamaz.CreateObject cannot be used to create instances of classes in Visual Basic unless those classes are explicitly exposed as COM components.

Özel durumlar

Sunucu kullanılamıyorServer is unavailable

Belirtilen türde bir nesne yokNo object of the specified type exists

Örnekler

Aşağıdaki örnek, CreateObject bir Microsoft Excel çalışma sayfası oluşturmak ve çalışma sayfasını bir dosyaya kaydeder.The following example uses the CreateObject function to create a Microsoft Excel worksheet and saves the worksheet to a file. Bu örneği kullanmak için, bu programın çalıştırıldığı bilgisayarda Excel yüklü olmalıdır.To use this example, Excel must be installed on the computer where this program runs. Ayrıca, Proje menüsündeki Başvuru Ekle iletişim kutusunun com sekmesinden tür kitaplığına bir başvuru eklemeniz gerekir.Also, you must add a reference to the type library from the COM tab of the Add Reference dialog box on the Project menu. Tür kitaplığının adı, bilgisayarınızda yüklü olan Excel sürümüne bağlı olarak farklılık gösterir.The name of the type library varies depending on the version of Excel installed on your computer. Örneğin, Microsoft Excel 2002 için tür kitaplığı Microsoft excel 10,0 nesne kitaplığıolarak adlandırılmıştır.For example, the type library for Microsoft Excel 2002 is named Microsoft Excel 10.0 Object Library.

Sub TestExcel()
    Dim xlApp As Microsoft.Office.Interop.Excel.Application
    Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
    Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet

    xlApp = CType(CreateObject("Excel.Application"), 
                Microsoft.Office.Interop.Excel.Application)
    xlBook = CType(xlApp.Workbooks.Add, 
                Microsoft.Office.Interop.Excel.Workbook)
    xlSheet = CType(xlBook.Worksheets(1), 
                Microsoft.Office.Interop.Excel.Worksheet)

    ' The following statement puts text in the second row of the sheet.
    xlSheet.Cells(2, 2) = "This is column B row 2"
    ' The following statement shows the sheet.
    xlSheet.Application.Visible = True
    ' The following statement saves the sheet to the C:\Test.xls directory.
    xlSheet.SaveAs("C:\Test.xls")
    ' Optionally, you can call xlApp.Quit to close the workbook.
End Sub

Açıklamalar

Bir COM bileşeni örneği oluşturmak için tarafından döndürülen nesneyi CreateObject bir nesne değişkenine atayın:To create an instance of a COM component, assign the object returned by CreateObject to an object variable:

Sub CreateADODB()  
   Dim adoApp As Object  
   adoApp = CreateObject("ADODB.Connection")  
End Sub  

Döndürülen nesneyi depolamak için kullandığınız nesne değişkeninin türü uygulamanızın performansını etkileyebilir.The type of object variable you use to store the returned object can affect your application's performance. Bir nesne değişkenini As Object yan tümcesiyle bildirme, herhangi bir nesne türüne başvuru içerebilen bir değişken oluşturur.Declaring an object variable with the As Object clause creates a variable that can contain a reference to any type of object. Ancak, bu değişken aracılığıyla nesneye erişim geç bağlanır, diğer bir deyişle, programınız çalıştığında bağlama gerçekleşir.However, access to the object through that variable is late-bound, that is, the binding occurs when your program runs. Daha yavaş uygulama performansı dahil olmak üzere geç bağlamaktan kaçınmanın pek çok nedeni vardır.There are many reasons you should avoid late binding, including slower application performance.

Erken bağlama ile sonuçlanan bir nesne değişkeni oluşturabilirsiniz-Yani, program derlendiğinde bağlama.You can create an object variable that results in early binding - that is, binding when the program is compiled. Bunu yapmak için, Proje menüsünde Başvuru Ekle iletişim kutusunun com sekmesinden nesnenizin tür kitaplığına bir başvuru ekleyin.To do so, add a reference to the type library for your object from the COM tab of the Add Reference dialog box on the Project menu. Sonra, nesnenizin belirli türünün nesne değişkenini bildirin.Then declare the object variable of the specific type of your object. Çoğu durumda, Dim nesneleri oluşturmak için deyimin ve birincil birlikte çalışma derlemesinin kullanılması daha etkilidir CreateObject .In most cases, it is more efficient to use the Dim statement and a primary interop assembly to create objects than it is to use the CreateObject function.

Yönetilmeyen Kod ile EtkileşimInteracting with Unmanaged Code

Diğer bir sorun ise COM nesnelerinin ortak dil çalışma zamanının avantajsız yönetilmeyen kod kodu kullanmasına neden olur.Another issue is that COM objects use unmanaged code - code without the benefit of the common language runtime. Visual Basic yönetilen kodu, COM ' dan yönetilmeyen kod ile karıştırmaya dahil olan bir çok karmaşıklık derecesi vardır.There is a fair degree of complexity involved in mixing the managed code of Visual Basic with unmanaged code from COM. COM nesnesine bir başvuru eklediğinizde, bu kitaplık için bir birincil birlikte çalışma derlemesi (PIA) arar Visual Basic. bulursa, onu kullanır.When you add a reference to a COM object, Visual Basic searches for a primary interop assembly (PIA) for that library; if it finds one, then it uses it. Bir PIA bulamazsa, COM kitaplığındaki her bir sınıf için yerel birlikte çalışabilirlik sınıfları içeren bir birlikte çalışabilirlik derlemesi oluşturur.If it does not find a PIA, then it creates an interoperability assembly that contains local interoperability classes for each class in the COM library. Daha fazla bilgi için bkz. .NET Framework uygulamalarda com birlikte çalışabilirliği.For more information, see COM Interoperability in .NET Framework Applications.

Mümkün olduğunda genellikle kesinlikle bağlantılı nesneleri ve birincil birlikte çalışma derlemelerini kullanmanız gerekir.You should generally use strongly bound objects and primary interop assemblies whenever possible. Aşağıdaki örneklerde, CreateObject işlevini yalnızca gösterim amacıyla Microsoft Office nesneleriyle birlikte kullanın.The examples below use the CreateObject function with Microsoft Office objects for demonstration purposes only. Ancak, bu nesnelerin uygun birincil birlikte çalışma derlemesiyle birlikte kullanılması daha kolay ve daha güvenilir.However, these objects are easier to use and more reliable when used with the appropriate primary interop assembly.

Uzak Bilgisayarda Nesne OluşturmaCreating an Object on a Remote Computer

Bilgisayarın adını işlevin bağımsız değişkenine geçirerek, uzak ağa bağlı bir bilgisayarda bir nesne oluşturabilirsiniz ServerName CreateObject .You can create an object on a remote networked computer by passing the name of the computer to the ServerName argument of the CreateObject function. Bu ad, bir paylaşımın adının makine adı bölümüyle aynıdır: "\Myserver\public" adlı bir paylaşımın " \ ServerName Sunucum" olur.That name is the same as the Machine Name portion of a share name: for a share named "\\MyServer\Public," ServerName is "MyServer."

Not

Bir uygulamayı uzak ağa bağlı bir bilgisayarda erişilebilir hale getirme hakkında daha fazla bilgi için COM belgelerine (bkz. Microsoft Developer Network) bakın.Refer to COM documentation (see Microsoft Developer Network) for additional information on making an application accessible on a remote networked computer. Uygulamanız için bir kayıt defteri anahtarı eklemeniz gerekebilir.You may need to add a registry key for your application.

Aşağıdaki kod, adlı bir uzak bilgisayarda çalışan bir Excel örneğinin sürüm numarasını döndürür MyServer :The following code returns the version number of an instance of Excel running on a remote computer named MyServer:

Sub CreateRemoteExcelObj()  
    Dim xlApp As Object  
    ' Replace string "\\MyServer" with name of the remote computer.  
    xlApp = CreateObject("Excel.Application", "\\MyServer")  
    MsgBox(xlApp.Version)  
End Sub  

Uzak sunucu adı yanlışsa veya kullanılamıyorsa, bir çalışma zamanı hatası oluşur.If the remote server name is incorrect, or if it is unavailable, a run-time error occurs.

Not

CreateObjectNesnenin geçerli örneği olmadığında kullanın.Use CreateObject when there is no current instance of the object. Nesnenin bir örneği zaten çalışıyorsa, yeni bir örnek başlatılır ve belirtilen türden bir nesne oluşturulur.If an instance of the object is already running, a new instance is started, and an object of the specified type is created. Geçerli örneği kullanmak veya uygulamayı başlatmak ve bir dosyayı yüklemek için GetObject işlevini kullanın.To use the current instance, or to start the application and have it load a file, use the GetObject function. Bir nesne kendisini tek örnekli bir nesne olarak kaydettirirse, kaç kez yürütülebileceğini bakılmaksızın nesnenin yalnızca bir örneği oluşturulur CreateObject .If an object has registered itself as a single-instance object, only one instance of the object is created, no matter how many times CreateObject is executed.

Framework Nesneleri OluşturmaCreating Framework Objects

CreateObjectİşlevini yalnızca BIR com nesnesi oluşturmak için kullanabilirsiniz.You can use the CreateObject function only to create a COM object. .NET Framework nesnesi oluşturmak için tam eşdeğer bir mekanizma olmasa da, Activator System ad alanında yerel veya uzak nesneler oluşturmak için yöntemler bulunur.While there is no exact equivalent mechanism for creating a .NET Framework object, the Activator in the System namespace contains methods to create local or remote objects. Özellikle, CreateInstance yöntemi veya CreateInstanceFrom yöntemi yararlı olabilir.In particular, the CreateInstance method or the CreateInstanceFrom method might be useful.

Önemli

CreateObjectİşlev, kısmi güven durumlarında yürütmesini etkileyebilecek, yönetilmeyen kod iznini gerektirir.The CreateObject function requires unmanaged code permission, which might affect its execution in partial-trust situations. Daha fazla bilgi için bkz SecurityPermission . ve kod erişim izinleri.For more information, see SecurityPermission and Code Access Permissions.

Şunlara uygulanır

Ayrıca bkz.