Проблема с назначением HRESULT с использованием CoInitializeEx

Я пытаюсь использовать руководство Microsoft здесь, чтобы установить соединение COM для программирования WMI. Я немного изменил пример кода, чтобы он соответствовал моему стилю. Мой код пока выглядит следующим образом:

#include <iostream>
#include <Windows.h>
#include <WbemIdl.h>

#define _WIN32_DCOM

#pragma comment(lib, "wbemidl.lib")

HRESULT hRes;
hRes = CoInitializeEx(0, COINIT_MULTITHREADED);

if(FAILED(hRes))
{
std::cout << "COM initializtion failed." << std::endl;
}

Моя проблема появляется в задании по адресу:

hRes = CoInitializeEx(0, COINIT_MULTITHREADED);

Я вижу маленький красный волнистый, поэтому я проверяю это, и он говорит:

Ошибка: это объявление не имеет класса хранения или спецификатора типа

Я понятия не имею, в чем проблема: я давно не делал C ++, поэтому я мог бы просто совершить глупую ошибку. Некоторое Гугление привело меня к такому вопросу, который сказал, что тип не был определен, потому что правильный заголовок не был включен, но (пожалуйста исправьте меня, если я ошибаюсь в этом), я думал, что HRESULT был определен в Windows.h,

Кто-нибудь может увидеть проблему с этим кодом? Это консольное приложение Win32, и я использую Visual Studio 2015.

2

Решение

Ниже код должен идти внутри функции ..

HRESULT hRes;
hRes = CoInitializeEx(0, COINIT_MULTITHREADED);

if(FAILED(hRes))
{
std::cout << "COM initializtion failed." << std::endl;
}

Вы не можете написать код вне функции. Вы можете писать объявления, но не сам код, именно в этом и заключается ошибка *This declaration has no storage class or type specifier* состояния.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]