在x64

2012-03-16 59 views
6

我試圖使用從MSDN的WMI例如WMI鏈接錯誤:在x64

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

我複製的最後一組代碼中有逐字到VS2008控制檯應用程序。如果我的應用程序在發佈或調試win32平臺時,它會編譯(並運行)正常。如果我有它在釋放或調試的x64平臺,我得到下面的連接錯誤:

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 

我已經試圖把wbemuuid.lib到連接器直接輸入在項目屬性,但沒對附註做出改變。

有人用x64做過這個工作嗎?還是有什麼我做錯了?

+0

我只是使用vs2008,x64創建一個新的控制檯C++應用程序並編譯並運行正常。所以你的問題必須與一些丟失的文件或配置有關。 – RRUZ 2012-03-16 18:24:05

+1

嘗試檢查您安裝的是哪個版本的Microsoft SDK,並且在該位置是否存在'wbemuuid.lib'文件'C:\ Program Files文件(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Lib \ x64' – RRUZ 2012-03-16 18:42:21

+0

@RRUZ我只安裝了5.0,並且根本沒有x64目錄。我會查找從哪裏開始購買MS SDK,看看它是否可行。如果您回答下面的答案而不是評論,如果這是問題的根源,我可能會將您標爲「正確」。 – 2012-03-16 20:05:38

回答

2

我對RRUZ表示讚賞,因爲他/她至少讓我走上了正軌,但由於他們沒有發佈答案 - 答案(只是一個評論),我不能點擊他們的信用。

基本上,由於我所處的工作環境,項目目錄是以「非標準」方式設置的。在另一個不是正確版本(不是x64)的目錄中已經有一個wbemuuid.lib的副本,並且該目錄在庫包含列表中較高,因此永遠不會進入正確的Windows Platform庫目錄。

因此,如果您曾經遇到x86與x64以及庫包含的問題,請檢查您的目錄並檢查它們的ORDER。

+1

很高興爲您效勞。 – RRUZ 2012-03-19 20:47:06