2012-03-16 5 views
6

Sto cercando di usare l'esempio di WMI da MSDN:WMI Linker errore su x64

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

Ho copiato l'ultimo set di codice ci testualmente in un'applicazione console in VS2008. Se ho l'applicazione in versione o debug per la piattaforma win32, compila (e gira) bene. Se ho in stampa o di debug per la piattaforma x64, ottengo i seguenti errori di linker:

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 

Ho già provato a mettere il wbemuuid.lib all'ingresso linker direttamente nelle proprietà del progetto, ma che didn Non fa differenza dal pragma.

Qualcuno ha fatto questo lavoro con x64? O c'è qualcos'altro che sto sbagliando?

+0

Ho appena creato una nuova applicazione di console C++ utilizzando vs2008, x64 e compila e gira bene. Quindi il tuo problema deve essere correlato ad alcuni file o configurazioni mancanti. – RRUZ

+1

Prova a verificare quale versione di Microsoft SDK hai installato e se il file 'wbemuuid.lib' esiste in questa posizione' C: \ Programmi (x86) \ Microsoft SDK \ Windows \ v7.0A \ Lib \ x64' – RRUZ

+0

@RRUZ Ho solo fino a 5.0 installato, e non ho affatto la directory x64. Cercherò dove andare a D/L l'MS SDK e vedere se funziona. Se rispondi con una risposta di seguito anziché un commento, probabilmente contrassegnerò il tuo come "corretto" se questa è la radice del problema. –

risposta

2

Rendo merito a RRUZ per questo, poiché almeno mi ha messo sulla strada giusta, ma poiché non hanno inviato una risposta-risposta (solo un commento) non riesco a selezionarli per il credito.

In sostanza, a causa dell'ambiente di lavoro mi trovo, le directory del progetto sono impostati in modo "non standard". C'era già una copia di wbemuuid.lib in un'altra directory che non era la versione corretta (non x64), e quella directory era più alta sulla libreria comprendono lista, quindi mai arrivare alla directory di libreria Piattaforma Windows destra.

Quindi, se avete mai avuto problemi con x86 vs x64 e biblioteca comprende, controllare le directory e controllare l'ordine di loro.

+1

Felice di aiutarti. – RRUZ