【问题标题】:MotherBoard information with WMI, using mingw带有 WMI 的主板信息,使用 mingw
【发布时间】:2014-08-02 04:39:59
【问题描述】:

我使用 mingw 作为编译器,我试图让 wmi 以某种方式工作,但代码取决于

wbemidl.h
Wbemuuid.lib

我怎样才能避免使用这个库?例如

hr = CoCreateInstance(&CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, &IID_IWbemLocator, (LPVOID *) &locator);

我如何自己获得 CLSID_WbemLocator 和 IID_IWbemLocator?我还需要以某种方式为自己定义指向 COM 接口的指针。

  IWbemLocator         *locator  = NULL;
  IWbemServices        *services = NULL;
  IEnumWbemClassObject *results  = NULL;

谁能帮帮我?

【问题讨论】:

  • 声明一个名为CLSID_WbemLocatorGUID 类型变量并用正确的值初始化它。
  • 感谢 Obvlious 船长 :)。但是我如何获得正确的值?在 wbemidl.h 中查找它?还有我应该如何处理 com 指针? IWbemLocator、IWbemServices 等

标签: c++ c mingw wmi motherboard


【解决方案1】:

我从注册表中获得了 CLSID_WbemLocator,在 WBEMComLocator 下找到它。由于我的应用程序是用 C 编写的,因此我初始化了 GUID 结构:

CLSID CLSID_WbemLocator = {0x4590F811, 0x1D3A, 0x11D0, {0x89, 0x1F, 0, 0xAA, 0, 0x4B, 0x2E, 0x24}};

解决了这个问题,我可以运行How to obtain data from WMI using a C Application? 下给出的示例,我认为您必须使用您提到的库。为什么不? MinGW 提供了这些库。

【讨论】:

    猜你喜欢
    • 2010-11-18
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    相关资源
    最近更新 更多