2012-03-16 15 views
6

Próbuję użyć przykładu WMI z MSDN:WMI Linker Error na x64

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

Mam skopiowane ostatni zestaw kodu tam dosłownie do aplikacji konsoli w VS2008. Jeśli mam aplikację w wersji lub debugowanie dla platformy win32, kompiluje (i działa) dobrze. Jeśli mam go uwolnienia lub debugowania dla platformy x64, otrzymuję następujące błędy linkera:

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 

Ja już próbował oddanie wbemuuid.lib do wejścia łącznikowej bezpośrednio we właściwościach projektu, ale to didn odmienia się od pragmy.

Czy ktoś wykonał tę pracę z x64? Czy jest coś, co robię źle?

+0

Po prostu utworzę nową konsolę aplikacji C++, używając vs2008, x64 i kompiluje i działa dobrze. Twój problem musi być związany z brakującym plikiem lub konfiguracją. – RRUZ

+1

Spróbuj sprawdzić, która wersja pakietu Microsoft SDK jest zainstalowana i czy w tym miejscu istnieje plik 'wbemuuid.lib'. C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.0A \ Lib \ x64' – RRUZ

+0

@RRUZ Mam zainstalowane tylko do 5.0 i nie mam w ogóle katalogu x64. Sprawdzę, gdzie do D/L MS SDK i sprawdź, czy to działa. Jeśli odpowiesz w odpowiedzi poniżej, a nie komentarz, prawdopodobnie oznaczę twój jako "poprawny", jeśli jest to źródło problemu. –

Odpowiedz

2

Ja przypisuję to RRUZ za to, że przynajmniej postawił mnie na właściwej ścieżce, ale ponieważ nie zamieścił odpowiedzi (tylko komentarz), nie mogę ich kliknąć na kredyt.

Zasadniczo, ze względu na środowisko pracy, w którym się znajduję, katalogi projektów są konfigurowane w "niestandardowy" sposób. W innym katalogu znajdowała się już kopia pliku wbemuuid.lib, która nie była poprawną wersją (nie x64), a katalog ten znajdował się wyżej na liście dołączanej do biblioteki, przez co nigdy nie trafił do właściwego katalogu biblioteki platformy Windows.

Jeśli masz problemy z x86 i x64 oraz biblioteką, sprawdź katalogi i sprawdź również ich kolejność.

+1

Cieszę się, że mogę Ci pomóc. – RRUZ