2010-11-26 6 views
3

Il existe un fichier idl défini dans microsoft sdk qui n'est pas disponible dans VS2005. J'utilise certaines des interfaces de ce IDL.erreur LNK2001: symbole externe non résolu _CLSID_XYS

Maintenant cela fonctionne bien sur VS 2010. Je veux le faire compiler sur VS2005.

J'ai copié le fichier d'en-tête dans mon répertoire de projet. Mais ça me donne une erreur de compilation. Lorsque j'ai regardé dans le fichier d'en-tête, l'identificateur de classe est défini comme EXTERN_C const CLSID CLSID_Xyz.

Maintenant, il est défini comme extern, ce qui signifie qu'il doit être déclaré ailleurs dans le code.

Donc ma question est juste en incluant .h fichier est suffisant ou dois-je également inclure le fichier _i.c.

Toutes les suggestions

Répondre

4

Une fois que vous examiner ce fichier _i.c vous verrez l'effet des constantes de CLSID sont définies ici. Alors oui, vous devez incorporer ce fichier .c dans votre programme - soit en le #incluant dans un fichier .c ou .cpp ou simplement en l'ajoutant à votre projet afin qu'il compile séparément et ensuite se connecte au binaire final.

+0

ajouter _i.c au projet résout le problème – anand

Questions connexes