Share via


Inleiding tot COM-interoperabiliteit (Visual Basic)

Met het Component Object Model (COM) kan een object de functionaliteit ervan beschikbaar maken voor andere onderdelen en voor het hosten van toepassingen. Hoewel COM-objecten al vele jaren fundamenteel zijn voor Het programmeren van Windows, bieden toepassingen die zijn ontworpen voor common Language Runtime (CLR) veel voordelen.

.NET Framework-toepassingen vervangen uiteindelijk de toepassingen die zijn ontwikkeld door COM. Tot die tijd moet u mogelijk COM-objecten gebruiken of maken met behulp van Visual Studio. Dankzij interoperabiliteit met COM of COM-interop kunt u bestaande COM-objecten gebruiken terwijl u in uw eigen tempo overstapt naar .NET Framework.

Door .NET Framework te gebruiken om COM-onderdelen te maken, kunt u com-interoperabiliteit zonder registratie gebruiken. Hiermee kunt u bepalen welke DLL-versie is ingeschakeld wanneer er meer dan één versie op een computer is geïnstalleerd en kunnen eindgebruikers XCOPY of FTP gebruiken om uw toepassing te kopiëren naar een geschikte map op hun computer waar deze kan worden uitgevoerd. Zie Com-interop met registratievrij voor meer informatie.

Beheerde code en gegevens

Code die is ontwikkeld voor .NET Framework wordt beheerde code genoemd en bevat metagegevens die door de CLR worden gebruikt. Gegevens die door .NET Framework-toepassingen worden gebruikt, worden beheerde gegevens genoemd omdat de runtime gegevensgerelateerde taken beheert, zoals het toewijzen en vrijmaken van geheugen en het uitvoeren van typecontrole. Visual Basic .NET maakt standaard gebruik van beheerde code en gegevens, maar u hebt toegang tot de niet-beheerde code en gegevens van COM-objecten met behulp van interop-assembly's (verderop op deze pagina beschreven).

Assembly's

Een assembly is de primaire bouwsteen van een .NET Framework-toepassing. Het is een verzameling van functionaliteit die is gebouwd, versiebeheer en geïmplementeerd als één implementatie-eenheid met een of meer bestanden. Elke assembly bevat een assemblymanifest.

Typebibliotheken en assemblymanifesten

Typebibliotheken beschrijven kenmerken van COM-objecten, zoals lidnamen en gegevenstypen. Assemblymanifesten voeren dezelfde functie uit voor .NET Framework-toepassingen. Ze bevatten informatie over het volgende:

  • Assembly-identiteit, versie, cultuur en digitale handtekening.

  • Bestanden waaruit de assembly-implementatie bestaat.

  • Typen en resources waaruit de assembly bestaat. Dit geldt ook voor de geëxporteerde gegevens.

  • Compileertijdafhankelijkheden voor andere assembly's.

  • Machtigingen die nodig zijn om de assembly correct uit te voeren.

Zie Assembly's in .NET voor meer informatie over assembly's en assemblymanifesten.

Typebibliotheken importeren en exporteren

Visual Studio bevat een hulpprogramma, Tlbimp, waarmee u gegevens uit een typebibliotheek kunt importeren in een .NET Framework-toepassing. U kunt typebibliotheken van assembly's genereren met behulp van het hulpprogramma Tlbexp.

Zie Tlbimp.exe (Type Library Importer) en Tlbexp.exe (Type Library Exporter) voor meer informatie over Tlbimp en Tlbexp.

Interop-assembly's

Interop-assembly's zijn .NET Framework-assembly's die overbruggingen tussen beheerde en onbeheerde code, waarbij COM-objectleden worden toegewezen aan gelijkwaardige door .NET Framework beheerde leden. Interop-assembly's die zijn gemaakt door Visual Basic .NET verwerken veel van de details van het werken met COM-objecten, zoals interoperabiliteits marshalling.

Interoperabiliteit Marshalling

Alle .NET Framework-toepassingen delen een set algemene typen die interoperabiliteit van objecten mogelijk maken, ongeacht de programmeertaal die wordt gebruikt. De parameters en retourwaarden van COM-objecten gebruiken soms gegevenstypen die verschillen van die in beheerde code worden gebruikt. Interoperabiliteits marshalling is het proces van het verpakken van parameters en het retourneren van waarden in gelijkwaardige gegevenstypen wanneer ze van en naar COM-objecten worden verplaatst. Zie Interop Marshaling voor meer informatie.

Zie ook