none
Compilación de proyecto MFC en arquitectura x64 RRS feed

  • Pregunta

  • Hola a todos, estoy intentando compilar un proyecto MFC en arquitectura 64 bits. En él uso las siguientes funciones:

    - DnsQuery_A

    - DnsQueryConfig

    Este proyecto se compila correctamente en 32 bits y funciona correctamente. Pero cuando intento compilar en 64 bits me devuelve los siguientes errores:

    Error    4    error LNK2019: símbolo externo DnsQuery_A sin resolver al que se hace referencia en la función "unsigned char __cdecl PF(struct _LSA_UNICODE_STRING *,struct _LSA_UNICODE_STRING *,struct _LSA_UNICODE_STRING *,unsigned char)" (?PF@@YAEPEAU_LSA_UNICODE_STRING@@00E@Z)    PFH.obj    SABCpf

    Error    5    error LNK2019: símbolo externo DnsQueryConfig sin resolver al que se hace referencia en la función "unsigned char __cdecl PF(struct _LSA_UNICODE_STRING *,struct _LSA_UNICODE_STRING *,struct _LSA_UNICODE_STRING *,unsigned char)" (?PF@@YAEPEAU_LSA_UNICODE_STRING@@00E@Z)    PFH.obj    SABCpf

    parece ser que debo enlazar alguna libreria especifica de windns.lib compilada en x64 pero no estoy muy seguro y no se donde podría conseguirla.

    Saludos! y gracias anticipadamente.


    Héctor
    martes, 29 de marzo de 2011 14:35

Todas las respuestas

  • ¿Incluyes dnsapi.lib en las dependencias del enlazador?


    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/
    miércoles, 30 de marzo de 2011 14:57
    Moderador
  • Si que se incluye, de hecho se referencia la versión de 64 bits que se encuentra en C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\x64. Lo cierto es que no se que puede estar ocurriendo. De hecho estoy pensando en buscar una via alternativa de implementación, pero aun no se con que puedo suplir estas funciones.

    Gracias por su respuesta y un saludo!


    Héctor
    miércoles, 30 de marzo de 2011 15:53
  • Ambos dos símbolos están exportados en el dnsapi.lib que tengo yo en mi sdk (7.0)... En el 6 no puedo verlo porque no lo tengo instalado por ningún lado, pero tu mismo puedes mirarlo:

    vete a la carpeta que comentas con una sesión de consola de visual studio y pica: "dumpbin /exports dnsapi.lib | grep DnsQuery*"

    Si no tienes "grep" desvíalo a un fichero y busca la función.

    Si está el símbolo exportado, puede haber algún tipo de error en algunas definiciones. ¿Por qué usas la versión ANSI si al menos la función llamante es UNICODE?


    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/
    miércoles, 30 de marzo de 2011 19:22
    Moderador