【发布时间】:2012-03-16 17:13:41
【问题描述】:
我正在尝试使用 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 完成这项工作吗?还是我做错了什么?
【问题讨论】:
-
我只是使用 vs2008、x64 创建了一个新的控制台 c++ 应用程序,并且编译并运行正常。所以你的问题一定与一些丢失的文件或配置有关。
-
尝试检查您安装了哪个版本的Microsoft SDK以及
wbemuuid.lib文件是否存在于该位置C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64 -
@RRUZ 我只安装了 5.0,根本没有 x64 目录。我将查找从哪里 D/L MS SDK,看看是否可行。如果您在下面回复而不是评论,如果这是问题的根源,我可能会将您的答案标记为“正确”。