在x64

2012-03-16 100 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