Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Définition du type de marshaling

Avant de pouvoir créer un marshaleur, vous devez définir les interfaces managées et non managées qui sont marshalées. Ces interfaces exécutent couramment la même fonction, mais sont exposées différemment aux objets managés et non managés.

Un compilateur managé produit une interface managée à partir des métadonnées, et l'interface résultante ressemble à n'importe quelle autre interface managée. L'exemple de code suivant montre une interface type :

#using <mscorlib.dll>
interface INew {
    void NewMethod();
}

Vous définissez le type non managé dans le langage de définition d'interface (IDL, Interface Definition Language) et le compilez à l'aide du compilateur MIDL. Vous définissez l'interface dans une instruction de bibliothèque et lui assignez un ID d'interface à l'aide de l'attribut UUID.

[uuid(9B2BAADA-0705-11D3-A0CD-00C04FA35826)]
library OldLib {
     [uuid(9B2BAADD-0705-11D3-A0CD-00C04FA35826)]
     interface IOld : IUnknown
         HRESULT OldMethod();
}

Le compilateur MIDL produit plusieurs fichiers de sortie. Si l'interface est définie dans Old.idl, le fichier de sortie Old_i.c définit une variable const avec l'identificateur de l'interface (IID) :

const IID IID_IOld = {0x9B2BAADD,0x0705,0x11D3,{0xA0,0xCD,0x00,0xC0,0x4F,0xA3,0x58,0x26}};

Le fichier Old.h est également produit par MIDL. Il contient une définition C++ de l'interface pouvant être incluse (#include) dans le code source C++.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft