Avertissement du compilateur (niveau 4) C4336
importer une bibliothèque de types référencée croisée 'type_lib1' avant d’importer 'type_lib2'
Une bibliothèque de types a été référencée avec la directive #import . Toutefois, la bibliothèque de types contenait une référence à une autre bibliothèque de types qui n’était pas référencée avec #import
. Cet autre fichier .tlb a été trouvé par le compilateur.
Compte tenu de deux bibliothèques de types sur le disque créées à partir des deux fichiers suivants (compilés avec midl.exe) :
// c4336a.idl
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12b")]
library c4336aLib
{
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12c")]
enum E_C4336
{
one, two, three
};
};
Deuxième bibliothèque de types :
// c4336b.idl
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12d")]
library C4336bLib
{
importlib ("c4336a.tlb");
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12e")]
struct S_C4336
{
enum E_C4336 e;
};
};
L’exemple suivant génère l’erreur C4336 :
// C4336.cpp
// compile with: /W4 /LD
// #import "C4336a.tlb"
#import "C4336b.tlb" // C4336, uncomment previous line to resolve