Ошибка компоновщика WMI на x64 - PullRequest
6 голосов
/ 16 марта 2012

Я пытаюсь использовать пример WMI из msdn:

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? Или я что-то еще не так делаю?

1 Ответ

2 голосов
/ 19 марта 2012

Я отдаю должное RRUZ за это, поскольку он / она, по крайней мере, поставил меня на правильный путь, но, поскольку они не опубликовали ответ-ответ (просто комментарий), я не могу щелкнуть их для подтверждения. 1001 *

По сути, из-за рабочей среды, в которой я нахожусь, каталоги проекта настраиваются «нестандартным» способом. В другом каталоге уже была копия файла wbemuuid.lib с неверной версией (не x64), и этот каталог находился выше в списке включения библиотеки, поэтому никогда не попадал в правильный каталог библиотеки Windows Platform.

Так что, если у вас когда-нибудь возникнут проблемы с x86 против x64 и библиотекой, проверьте ваши каталоги и проверьте их ПОРЯДОК.

...