Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
MSDN Library
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
Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

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é

Afficher:
© 2015 Microsoft