Come chiamare un assembly .NET di Visual Basic o Visual Basic 2005 da Visual Basic 6.0

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 817248
INTRODUZIONE
In questo articolo viene descritto come utilizzare Microsoft Visual Basic .NET o Microsoft Visual Basic 2005 per creare un assembly gestito che può essere chiamato da Microsoft Visual Basic 6.0.
Informazioni

Linee guida per esporre tipi .NET da COM

Quando si desidera esporre tipi in un assembly Microsoft .NET per le applicazioni di Component Object Model (COM), considerare i seguenti requisiti di interoperabilità COM in fase di progettazione. Tipi gestiti (classe, interfaccia, struct, enume altri) interagiscono con applicazioni client COM quando si seguono queste indicazioni:
  • Definire le interfacce e implementarli in modo esplicito in classes.COM interoperabilità fornisce un meccanismo per generare automaticamente un'interfaccia thatcontains tutti i membri della classe e i membri della classe base. Tuttavia, è consigliabile fornire interfacce esplicite e implementare themexplicitly.
  • Dichiarare i tipi gestiti che si desidera esporre a COM aspublic. Solo i tipi pubblici in un assembly registrati ed esportati il tipo libreria. Di conseguenza, solo i tipi pubblici sono visibili a COM.
  • Dichiarare tutti membri di tipo (metodi, proprietà, campi, andevents) che si desidera esporre a COM come public. I membri del mustalso di tipi pubblici in pubblico per essere visibile a COM. Per impostazione predefinita, tutti i tipi pubblici e membersare visibile. Utilizzare l'attributo ComVisibleAttribute se è necessario nascondere un tipo o un membro di visibilità controltype o un membro da applicazioni client COM.
  • I tipi devono disporre di un costruttore predefinito pubblico per beinstantiated tramite Managed COM, tipi pubblici sono visibili a COM. Tuttavia, senza un costruttore pubblico predefinito (un costruttore senza argomenti), COMclients Impossibile creare un'istanza del tipo. I client COM possono utilizzare il tipo se il tipo viene creata un'istanza in un altro modo e l'istanza viene restituito al client COM. È possibile includere i costruttori di overload che accettano varyingarguments per questi tipi. Tuttavia, costruttori che accettano argomenti venga chiamato da onlybe (.NET) il codice gestito.
  • Tipi non possono essere astratti. Nessuno dei client COM né. NETclients possibile creare istanze di tipi astratti.
  • Il modello COMClass .NET di Visual Basic o Visual Basic 2005. Quando youadd una nuova classe che si desidera esporre alle applicazioni COM, considerare usingthe COMClass modello fornito da .NET di Visual Basic o Visual Basic2005. Il modello COMClass crea una classe che include l'attributo COMClassAttribute e genera i GUID per il CLSID, l'ID di interfaccia e l'ID evento che vengono esposti dal tipo. Inoltre, il modello di COMClass crea un costruttore pubblico senza parametri. Questo è il modo più semplice per creare una nuova classe che segue le linee guida per i tipi di essere chiamato creatingCOM.

La registrazione dell'assembly .NET per interoperabilità COM e la creazione di una libreria dei tipi

Con Visual Basic 6.0 per interagire con un componente gestito, è necessario registrare l'assembly di interoperabilità COM e generare una libreria dei tipi. Questa registrazione deve essere eseguita su ciascun computer in un'applicazione client COM interagisce con l'assembly. La libreria dei tipi tipo informazioni sui tipi esposti nell'assieme alle applicazioni client COM. Il processo per eseguire questa operazione varia a seconda se si sta lavorando sul computer di sviluppo o nel computer di destinazione.

Nel computer di sviluppo, verrà Microsoft o Microsoft Visual Studio 2005 crea automaticamente una libreria dei tipi e viene registrato durante il processo di compilazione se viene selezionata la casella di controllo Registra per interoperabilità COM in proprietà di configurazione del progetto. Se si utilizza il modello COMClass al momento della creazione della classe, Visual Studio 2005 o verrà automaticamente consente di selezionare la casella di controllo Registra per interoperabilità COM . Per verificare che sia selezionata la casella di controllo Registra per interoperabilità COM o in Visual Studio 2005 verrà, attenersi alla seguente procedura:
  1. Avviare Visual Studio .NET o Visual Studio 2005.
  2. Aprire la soluzione contenente il progetto che si desidera compilare per l'interoperabilità COM.
  3. Scegliere dal menu Visualizza , SolutionExplorer.
  4. In Esplora soluzioni, fare clic sul progetto che si desidera compilare per l'interoperabilità COM e quindi scegliereproprietà.
  5. Fare clic su Proprietà di configurazionee quindi fai clic su nodo di compilazione .

    Nota In Visual Studio 2005, fare clic su Compila il leftpane.
  6. Fare clic per selezionare la casella di controllo Registra per COMInterop . Questa opzione è disponibile solo nella classe libraryprojects.
  7. Fare clic su OK per chiudere la finestra di dialogo pagine delle proprietà .
Se Visual Studio .NET o Visual Studio 2005 non sono installati o se è necessario generare e registrare un file di libreria (tlb) del tipo per l'assembly gestito manualmente, utilizzare lo strumento di registrazione Assembly (RegAsm.exe) con l'opzione /TLB . È inoltre necessario utilizzare l'opzione /Codebase se l'assembly gestito è un assembly privato e si prevede di caricare l'assembly gestito in una cartella diversa dal processo host (EXE).

Un assembly privato è distribuito con un'applicazione ed è disponibile per l'utilizzo esclusivo di tale applicazione. Altre applicazioni non condivideranono l'assembly privato. Gli assembly privati sono progettati per essere installati nella stessa cartella del processo host (EXE). Con un'applicazione client COM, questo significa che l'assembly si trovi nella stessa cartella dell'applicazione. Un assembly condiviso è disponibile per più applicazioni sul computer. Per creare un assembly condiviso, è necessario firmare l'assembly con nome sicuro e installare l'assembly nella Global Assembly Cache (GAC) nel computer di destinazione.

Per ulteriori informazioni su come firmare l'assembly con nome sicuro e installare l'assembly nella Global Assembly Cache (GAC), visitare il seguente sito Web Microsoft:È necessario utilizzare entrambe le /tlb: switch e il /Codebase passare quando si registra l'assembly. Il /tlb: switch genera e registra una libreria dei tipi e l'opzione /Codebase registra il percorso dell'assembly gestito nel Registro di sistema Windows. Se non si utilizza l'opzione /Codebase e l'assembly non è stato installato nella Global Assembly Cache (GAC), è necessario inserire una copia dell'assembly nella cartella di ogni applicazione client COM (EXE) in modo che l'assembly può essere individuato da common language runtime (CLR).

Per generare e registrare una libreria dei tipi e registrare il percorso dell'assembly gestito, digitare il seguente comando al prompt dei comandi:
Regasm AssemblyName.dll /tlb: FileName.tlb /codebase

Creare un assembly chiamabile COM in .NET di Visual Basic

  1. Avviare Visual Studio .NET o Visual Studio 2005.
  2. Dal menu File , scegliereNuovo, quindi progetto.
  3. In Tipi progettoscegliere Progetti di Visual Basic.

    Nota In Visual Studio2005 fare clic su Visual Basic inTipi progetto.
  4. In modelli, fare clic su libreria classi.
  5. Denominare il progetto TestProj e quindi fare clic suOK.

    Per impostazione predefinita, viene creato Class1.
  6. Scegliere dal menu Visualizza , SolutionExplorer.
  7. Destro Class1. vbe quindi fare clic suElimina. Fare clic su OK per confermare l'eliminazione del file di origine di Class1. vb.
  8. Dal menu progetto , fare clic su AddClass.
  9. In modelli, fare clic su COMClass.
  10. Denominare la classe COMClass1.vb e quindi fare clic suApri

    COMClass1 viene creato con il codice riportato di seguito.
    <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 SubEnd Class
  11. Aggiungere la funzione seguente a COMClass1.
       Public Function myFunction() As Integer      Return 100   End Function
  12. In Esplora soluzioni, fare doppio clicNome del progetto, quindi scegliereproprietà.
  13. In Proprietà di configurazione, fare clic suGenera.
  14. Verificare che sia selezionata la casella di controllo Registra per interoperabilità COMe quindi fare clic su OK.
  15. Scegliere Genera dal menu Compila per compilare il progetto.
  16. Avviare Visual Basic 6.0.
  17. Dal menu File , fare clic su NewProject, quindi fare clic per selezionare la finestra di dialogoNuovo progettoEXE Standard .

    Per impostazione predefinita, tale isnamed Form1 viene creato un modulo.
  18. Scegliereriferimentidal menu progetto .
  19. Nell'elenco Riferimenti disponibili , fare doppio clic per selezionare TestProje quindi fare clic suOK.
  20. Aggiungere un pulsante di comando alla maschera.
  21. Fare doppio clic Command1 per aprire la rappresentazione.
  22. Aggiungere il codice seguente all'evento Command1_Click .
    Dim myObject As TestProj.COMClass1Set myObject = New TestProj.COMClass1MsgBox myObject.myFunction
  23. Scegliere Esegui dal menu diavvio.
  24. Fare clic sul pulsante di comando.

    Si dovrebbe ricevere amessage che consente di visualizzare 100.
Riferimenti
Per ulteriori informazioni, visitare il seguente sito Web Microsoft:

Avviso: questo articolo è stato tradotto automaticamente

속성

문서 ID: 817248 - 마지막 검토: 02/06/2016 06:45:00 - 수정: 1.0

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft .NET Framework 2.0, Microsoft .NET Framework 1.1, Microsoft .NET Framework 1.0

  • kbvs2005applies kbvs2005swept kbnamespace kbdll kbcominterop kbinterop kbautomation kbhowtomaster kbmt KB817248 KbMtit
피드백