Jak volat z aplikace Visual Basic 6.0 Visual Basic .NET nebo Visual Basic 2005 sestavení

ÚVOD

Tento článek popisuje, jak pomocí aplikace Microsoft Visual Basic .NET nebo Microsoft Visual Basic 2005 sestavení spravované sestavení, které lze volat z aplikace Microsoft Visual Basic 6.0.

Další informace

Pokyny pro vystavení .NET typů modelu COM.

Pokud chcete zobrazit typy v sestavení rozhraní Microsoft .NET pro aplikace modelu COM (Component Object), zvažte následující COM interop požadavky v době návrhu. Spravované typy (třídy, rozhraní, strukturu, výčeta jiné) interakce s aplikacemi modelu COM klienta při postupujte podle následujících pokynů:
  • Definovat rozhraní a explicitně je implementovat do tříd. Volání interop modelu COM poskytuje mechanismus pro automatické generování rozhraní, které obsahuje všechny členy třídy a členy základní třídy. Je však vhodné zajistit explicitní rozhraní a explicitně je provede.
  • Deklarujte všechny spravované typy, které chcete zpřístupnit model COM jako veřejné. Pouze veřejné typy v sestavení jsou registrovány a vyvážené do knihovny typů. Proto jsou pouze veřejné typy viditelné modelu COM.
  • Deklarujte všechny členy typu (metody, vlastnosti, polí a události), které chtějí zpřístupnit model COM jako veřejné. Členy veřejné typy musí být veřejné viditelné modelu COM. Ve výchozím nastavení všechny veřejné typy a členy jsou viditelné. Použijte ComVisibleAttribute atribut, pokud potřebujete skrýt typ nebo člena z typ nebo člen viditelnost ovládacího prvku modelu COM klientským aplikacím.
  • Typy musí mít veřejný výchozí konstruktor, který chcete vytvořit instanci pomocí spravované COM., veřejné typy jsou viditelné modelu COM. Nicméně bez veřejný výchozí konstruktor (konstruktor bez argumentů) klientům modelu COM nelze vytvořit instanci typu. Pokud je typ instance jiným způsobem a je instance vrácena klientovi COM slouží klientům modelu COM typu stále. Můžete zahrnout přetížených konstruktorů, které přijímají různé argumenty pro tyto typy. Nicméně by konstruktory, které přijímají argumenty může být volána pouze z spravovaný kód (.NET).
  • Typy nemohou být abstraktní. COM klienti ani .NET klientů můžete vytvořit instance abstraktní typy.
  • Použijte COMClass šablona v Visual Basic .NET nebo Visual Basic 2005. Pokud přidáte novou třídu, kterou chcete zpřístupnit aplikace modelu COM, zvažte použití COMClass šablona, která je k dispozici pomocí Visual Basic .NET nebo Visual Basic 2005. COMClass šablona vytvoří třídu, která zahrnuje COMClassAttribute atribut a generuje GUID pro identifikátor CLSID, ID rozhraní a ID události, které jsou vystaveny podle vašeho typu. Navíc COMClass šablona vytvoří veřejný konstruktor bez parametrů. Toto je nejjednodušší způsob, jak vytvořit novou třídu, která se řídí pokyny pro vytváření COM callable typy.

Registrace sestavení .NET pro COM interop a vytvoření knihovny typů

Pro Visual Basic 6.0 úspěšnou interakci s spravované komponenty musíte zaregistrovat sestavení pro volání interop modelu COM a generování knihovny typů. Tuto registraci musí provést v každém počítači, kde COM klientské aplikace spolupracuje s sestavení. Knihovna typů obsahuje typ informace o ohrožených typů v sestavení modelu COM klientským aplikacím. Bude proces závisí na, pokud pracujete na vývojovém počítači nebo v cílovém počítači.

Na vývojovém počítači, aplikace Microsoft Visual Studio .NET nebo Microsoft Visual Studio 2005 automaticky vytvoří typ knihovny a zaregistruje během procesu sestavení, pokud
Register for COM Interop políčko ve skupinovém rámečku vlastnosti Konfigurace projektu. Pokud COMClass šablona se používá při vytváření třídy, Visual Studio .NET nebo Visual Studio 2005 automaticky zaškrtne políčko zaregistrovat pro spolupráci s COM . Chcete-li ověřit, že Register for COM Interop políčko v aplikaci Visual Studio .NET nebo Visual Studio 2005, postupujte takto:
  1. Spusťte aplikaci Visual Studio .NET nebo Visual Studio 2005.
  2. Otevřete řešení obsahující projekt, který chcete sestavit modelu COM interop.
  3. V nabídce Zobrazit klepněte na položku Průzkumník řešení.
  4. V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt, který chcete sestavit pro volání interop modelu COM a potom klepněte na tlačítko
    Vlastnosti.
  5. Klepněte na příkaz Vlastnosti konfiguracea potom klikněte na uzel sestavení .

    Poznámka: V aplikaci Visual Studio 2005 klepněte v levém podokně.
  6. Klepnutím vyberte zaškrtávací políčko zaregistrovat pro spolupráci s COM . Tato volba je dostupná pouze v projektech knihoven tříd.
  7. Klepněte na tlačítko OK zavřete dialogové okno Stránky vlastností .
Pokud není nainstalována aplikace Visual Studio .NET nebo Visual Studio 2005 nebo pokud je nutné ručně generovat a zaregistrovat soubor typu knihovny souboru(.tlb) spravované sestavení, použijte nástroj registrace sestavení (RegAsm.exe) s přepínačem/tlb . Také byste měli použít přepínač /Codebase Pokud spravované sestavení je soukromé sestavení a máte v úmyslu spravované sestavení umístit do jiné složky z hostitelský proces (EXE).

Soukromé sestavení je nasazena s aplikací a je k dispozici pro výhradní použití této aplikace. Ostatní aplikace Nesdílet privátní sestavení. Soukromé sestavení jsou určeny k instalaci do stejné složky jako hostitelský proces (EXE). Pomocí klientské aplikace modelu COM to znamená, že sestavení je umístěn ve stejné složce jako aplikace. Sdílené sestavení je k dispozici pro více aplikací v počítači. Chcete-li vytvořit sdílené sestavení, musí podepsat sestavení silným názvem a instalaci sestavení do globální mezipaměti sestavení (GAC) v cílovém počítači.

Další informace o tom, jak podepsat sestavení silným názvem a instalaci sestavení do globální mezipaměti sestavení (GAC) naleznete na následujícím webu společnosti Microsoft:Je vhodné použít i /tlb: přepínač a /Codebase přepnout při registraci sestavení. /Tlb: přepínač vytvoří a zaregistruje knihovny typů a /Codebase přepínač registruje umístění spravované sestavení v registru systému Windows. Pokud nepoužijete přepínač /Codebase a sestavení není nainstalována do globální mezipaměti sestavení (GAC), je nutné umístit kopii sestavení do složky každého modelu COM klientské aplikace (EXE) tak, aby sestavení mohou nalézt společný jazykový modul runtime (CLR).

Generovat a zaregistrovat knihovnu typů a registraci umístění spravované sestavení, zadejte na příkazovém řádku následující příkaz:
Modul RegAsm AssemblyName.dll/tlb: FileName.tlb / codebase

Vytvořit COM callable sestavení v jazyce Visual Basic .NET

  1. Spusťte aplikaci Visual Studio .NET nebo Visual Studio 2005.
  2. V nabídce soubor přejděte na příkaz
    Novýa potom klikněte na projekt.
  3. Ve skupinovém rámečku Typy projektůklepněte na tlačítko Projekty jazyka Visual Basic.

    Poznámka: V aplikaci Visual Studio2005 klepněte na tlačítko Visual Basic ve skupinovém rámečku
    Typy projektů.
  4. Ve skupinovém rámečku šablonyklepněte na tlačítko Knihovny tříd.
  5. Pojmenujte projekt TestProj a potom klepněte na tlačítko
    OK.

    Ve výchozím nastavení je vytvořen Class1.
  6. V nabídce Zobrazit klepněte na položku Průzkumník řešení.
  7. Class1.vbklepněte pravým tlačítkem myši a potom klepněte na tlačítko
    Odstranit. Klepněte na tlačítko OK potvrďte odstranění zdrojový soubor Class1.vb.
  8. V nabídce projekt klepněte na tlačítko Přidat třídu.
  9. Ve skupinovém rámečku šablonyklepněte na tlačítko Třídy COM.
  10. Zadejte název třídy COMClass1.vb a klepněte na tlačítko
    Otevřít

    COMClass1 je vytvořen s následujícím kódem.
    <ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _Public Class ComClass1

    #Region "COM GUIDs"
    ' These GUIDs provide the COM identity for this class
    ' and its COM interfaces. If you change them, existing
    ' clients will no longer be able to access the class.
    Public Const ClassId As String = "6DB79AF2-F661-44AC-8458-62B06BFDD9E4"
    Public Const InterfaceId As String = "EDED909C-9271-4670-BA32-109AE917B1D7"
    Public Const EventsId As String = "17C731B8-CE61-4B5F-B114-10F3E46153AC"
    #End Region

    ' A creatable COM class must have a Public Sub New()
    ' without parameters. Otherwise, the class will not be
    ' registered in the COM registry and cannot be created
    ' through CreateObject.
    Public Sub New()
    MyBase.New()
    End Sub

    End Class
  11. Přidáte následující funkce COMClass1.
       Public Function myFunction() As Integer      Return 100
    End Function
  12. V Průzkumníku řešení klikněte pravým tlačítkem myši
    Název projektua potom klepněte na tlačítko
    Vlastnosti.
  13. V části Vlastnosti konfiguraceklepněte na tlačítko
    Sestavení.
  14. Zkontrolujte registr pro volání Interop modelu COM.zaškrtávací políčko a klepněte na tlačítko OK.
  15. V nabídce sestavení klepněte na tlačítko Sestavit řešení sestavení projektu.
  16. Spusťte aplikaci Visual Basic 6.0.
  17. V nabídce soubor klikněte na Nový projekta poté klepnutím vyberte Standardní EXE v
    Dialogové okno Nový projekt .

    Ve výchozím nastavení je vytvořen formulář s názvem Form1.
  18. V nabídce projekt klepněte na tlačítko
    Odkazy.
  19. V seznamu Dostupné odkazy poklepáním vyberte TestProja potom klepněte na tlačítko
    OK.
  20. Přidání příkazového tlačítka do formuláře.
  21. Poklepejte na položku Command1 otevřete okno kód.
  22. Přidejte následující kód události Command1_Click .
    Dim myObject As TestProj.COMClass1Set myObject = New TestProj.COMClass1
    MsgBox myObject.myFunction
  23. V nabídce Spustit příkaz
    Spustit.
  24. Klepněte na příkazové tlačítko.

    Měli byste obdržet zprávu, která zobrazuje 100.

Odkazy

Další informace naleznete na následujícím webu společnosti Microsoft:
Vlastnosti

ID článku: 817248 - Poslední kontrola: 16. 1. 2017 - Revize: 1

Váš názor