我正在尝试使用msdn中的WMI示例:
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直接放入项目属性中的链接器输入中,但这与pragma没有区别。
有人用x64做过这个吗?或者还有别的我做错了吗?
答案 0 :(得分:2)
我赞同RRUZ,因为他/她至少让我走上了正确的轨道,但由于他们没有发布答案答案(只是评论),我不能点击它们来获取信用。 / p>
基本上,由于我所处的工作环境,项目目录以“非标准”方式设置。在另一个目录中已经有一个wbemuuid.lib的副本,它不是正确的版本(不是x64),并且该目录在库包含列表中更高,因此永远不会到达正确的Windows平台库目录。
因此,如果您遇到x86 vs x64和库包含问题,请检查您的目录并检查它们的ORDER。