2012-03-16 9 views
6

Estoy tratando de utilizar el ejemplo de WMI de MSDN:WMI Enlazador de error en x64

http://msdn.microsoft.com/en-us/library/windows/desktop/aa384724%28v=vs.85%29.aspx

He copiado el último juego de código no literalmente en una aplicación de consola en VS2008. Si tengo la aplicación en versión o depuración para la plataforma win32, compila (y ejecuta) bien. Si lo tengo en la liberación o de depuración para la plataforma x64, me sale el siguiente errores de enlace:

CppConsole.obj : error LNK2001: unresolved external symbol IID_IWbemConfigureRefresher 
CppConsole.obj : error LNK2001: unresolved external symbol CLSID_WbemRefresher 
CppConsole.obj : error LNK2001: unresolved external symbol IID_IWbemRefresher 
CppConsole.obj : error LNK2001: unresolved external symbol CLSID_WbemLocator 
CppConsole.obj : error LNK2001: unresolved external symbol IID_IWbemLocator 
fatal error LNK1120: 5 unresolved externals 

ya he intentado poner el wbemuuid.lib en la entrada enlazador directamente en las propiedades del proyecto, pero que didn hacer una diferencia con el pragma

¿Alguien ha hecho esto con x64? ¿O hay algo más que estoy haciendo mal?

+0

Acabo de crear una nueva aplicación de consola C++ usando vs2008, x64 y compila y funciona bien. Por lo tanto, su problema debe estar relacionado con algún archivo o configuración faltante. – RRUZ

+1

Intente comprobar qué versión de Microsoft SDK tiene instalado y si el archivo 'wbemuuid.lib' existe en esta ubicación' C: \ Archivos de programa (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Lib \ x64' – RRUZ

+0

@RRUZ Solo tengo 5.0 instalados, y no tengo el directorio x64 en absoluto. Buscaré de dónde sacar D/L el MS SDK y veré si eso funciona. Si responde con una respuesta a continuación en lugar de un comentario, es probable que marque la suya como "correcta" si esta es la raíz del problema. –

Respuesta

2

Doy crédito a RRUZ por esto, ya que al menos me puso en el camino correcto, pero como no han publicado una respuesta-respuesta (solo un comentario) no puedo hacer clic para obtener crédito.

Básicamente, debido al entorno de trabajo en el que estoy, los directorios del proyecto están configurados de una manera "no estándar". Ya había una copia de wbemuuid.lib en otro directorio que no era la versión correcta (no x64), y ese directorio era más alto en la lista de inclusión de la biblioteca, por lo que nunca llegó al directorio correcto de la biblioteca de Windows Platform.

Si alguna vez tiene problemas con x86 vs x64 y la biblioteca incluye, consulte sus directorios y verifique también el ORDEN de ellos.

+1

Me alegro de ayudarte. – RRUZ