Megosztás a következőn keresztül:


A COM Interop bemutatása (Visual Basic)

A komponensobjektum-modell (COM) lehetővé teszi, hogy az objektumok más összetevők számára is elérhetővé tegyék a funkcióját, és alkalmazásokat üzemeltethessenek. Bár a COM-objektumok sok éve alapvető fontosságúak a Windows-programozásban, a közös nyelvi futtatókörnyezethez (CLR) tervezett alkalmazások számos előnnyel járnak.

.NET-keretrendszer alkalmazások végül lecserélik a COM-ra fejlesztett alkalmazásokat. Addig is előfordulhat, hogy COM-objektumokat kell használnia vagy létrehoznia a Visual Studióval. A COM-val vagy a COM-interopval való együttműködés lehetővé teszi, hogy meglévő COM-objektumokat használjon, miközben a saját tempójában vált a .NET-keretrendszer.

A COM-összetevők létrehozásához a .NET-keretrendszer használhatja a regisztráció nélküli COM-interopot. Ez lehetővé teszi annak szabályozását, hogy melyik DLL-verzió legyen engedélyezve, ha egy számítógépen egynél több verzió van telepítve, és lehetővé teszi, hogy a végfelhasználók XCOPY vagy FTP használatával másolja az alkalmazást a számítógépük megfelelő könyvtárába, ahol futtathatók. További információ: Regisztráció nélküli COM Interop.

Felügyelt kód és adatok

A .NET-keretrendszer kifejlesztett kódot felügyelt kódnak nevezzük, és a CLR által használt metaadatokat tartalmazza. Az .NET-keretrendszer alkalmazások által használt adatokat felügyelt adatoknak nevezzük, mivel a futtatókörnyezet az adatokkal kapcsolatos feladatokat kezeli, például a memória lefoglalását és visszanyerését, valamint a típusellenőrzést. Alapértelmezés szerint a Visual Basic .NET felügyelt kódot és adatokat használ, de a COM-objektumok nem felügyelt kódját és adatait interop szerelvények használatával érheti el (erről később olvashat bővebben ezen az oldalon).

Szerelvények

A szerelvény egy .NET-keretrendszer-alkalmazás elsődleges építőeleme. Ez a funkciógyűjtemény egyetlen, egy vagy több fájlt tartalmazó implementációs egységként lett létrehozva, verziószámozott és üzembe helyezve. Minden szerelvény tartalmaz egy szerelvényjegyzéket.

Kódtárak és szerelvényjegyzékek beírása

A típuskódtárak a COM-objektumok jellemzőit írják le, például tagneveket és adattípusokat. A szerelvényjegyzékek ugyanazt a függvényt hajtják végre .NET-keretrendszer alkalmazások esetében. A következőkre vonatkozó információkat tartalmaznak:

  • Szerelvény identitása, verziója, kultúrája és digitális aláírása.

  • A szerelvény megvalósítását alkotó fájlok.

  • A szerelvényt alkotó típusok és erőforrások. Ide tartoznak a belőle exportált adatok is.

  • Fordítási idő függőségei más szerelvényeken.

  • A szerelvény megfelelő futtatásához szükséges engedélyek.

A szerelvényekről és a szerelvényjegyzékekről további információt a .NET-beli szerelvényekben talál.

Típustárak importálása és exportálása

A Visual Studio tartalmaz egy Tlbimp segédprogramot, amellyel adatokat importálhat egy típustárból egy .NET-keretrendszer alkalmazásba. A Tlbexp segédprogrammal típustárakat hozhat létre szerelvényekből.

A Tlbimpről és a Tlbexpről további információt a Tlbimp.exe (Típustár-importáló) és a Tlbexp.exe (Típustár-exportőr) című cikkben talál.

Interop szerelvények

Az interop szerelvények olyan .NET-keretrendszer szerelvények, amelyek hidat képeznek a felügyelt és a nem felügyelt kód között, és a COM-objektumtagokat egyenértékű .NET-keretrendszer felügyelt tagokhoz társítják. A Visual Basic .NET által létrehozott interop szerelvények a COM-objektumokkal való munka számos részletét kezelik, például az együttműködési rendezést.

Együttműködési rendezés

Minden .NET-keretrendszer alkalmazás közös típusok, amelyek lehetővé teszik az objektumok együttműködési képességét, függetlenül a használt programozási nyelvtől. A COM-objektumok paraméterei és visszatérési értékei néha olyan adattípusokat használnak, amelyek eltérnek a felügyelt kódban használttól. Az együttműködési rendezés a paraméterek csomagolásának folyamata, és az értékeket egyenértékű adattípusokba adja vissza a COM-objektumokra való áttéréskor. További információ: Interop Marshaling.

Lásd még