QApplication - невозможно использовать IWbemLocator в Qt - PullRequest
0 голосов
/ 25 ноября 2018

Я хочу написать WMI приложение, использующее Windows API и COM-библиотеку в Qt.

Я включаю <qt_windows.h> для доступа к Windows API, я пробовал это раньше в VisualStudio .

Но когда я включаю Wbemidl.h для объявления переменной IWbemLocator, компилятор дает мне следующее error:

error: Wbemidl.h: No such file or directory

Это часть моего code:

HRESULT hResult = S_OK;                 // Result of initializing com library
BOOL    bIsComLibUninit = FALSE;        // A flag that determine if com library is loaded

// Initialize COM library
hResult = CoInitializeEx(0, COINIT_MULTITHREADED);
// If a previous call of CoInitializeEx occured in this thread
if(hResult == RPC_E_CHANGED_MODE)
{
    OleUninitialize();
    bIsComLibUninit = TRUE;
}
else if(hResult == S_OK)
{
    bIsComLibUninit = TRUE;
}

// If COM library uninitialized
if(bIsComLibUninit == TRUE)
{
    // Initialize COM library
    hResult = CoInitializeEx(0, COINIT_MULTITHREADED);
    if(hResult == S_OK)
    {
        // Initialize security
        hResult = CoInitializeSecurity(NULL, -1, NULL, NULL,
                                       RPC_C_AUTHN_LEVEL_DEFAULT,
                                       RPC_C_IMP_LEVEL_IMPERSONATE,
                                       NULL, EOAC_NONE, NULL);
        if(hResult == S_OK)
        {
            IWbemLocator *pLoc = NULL;
            CoCreateInstance(CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER,
                             IID_IWbemLocator, (LPVOID *) &pLoc);
            // Do stuffs
        }
    }

    // Uninitialize COM library
    CoUninitialize();
}

1 Ответ

0 голосов
/ 26 ноября 2018

Сообщение об ошибке говорит о том, что компилятор не может найти файл заголовка.

  1. Попробуйте найти «Wbemidl.h» в вашем местоположении (например, «Путь в моем регионе: C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\um») и добавьте PATH в ваш компилятор.Также не забудьте ссылку .lib.
  2. Если вы не можете найти этот заголовочный файл, попробуйте скачать sdk с здесь , выберите тот, который подходит вам:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...