使用CoInitializeEx分配HRESULT的问题

时间:2015-10-08 01:06:12

标签: c++ com hresult

我正在尝试使用Microsoft的教程来为WMI编程设置COM连接。我稍微修改了示例代码以适合我的风格。到目前为止,我的代码如下:

#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);

我看到一个小红色的波浪形,所以我检查它,它说:

Error: this declaration has no storage class or type specifier

我不知道问题是什么,我有一段时间没有真正完成C ++,所以我只能犯一个愚蠢的错误。一些谷歌搜索引导我提出一个SO问题,说没有定义类型,因为没有包含正确的标题,但是(如果我错了,请纠正我)我认为HRESULT已定义在Windows.h

有人能看到此代码存在问题吗?它是一个Win32控制台应用程序,我使用的是Visual Studio 2015。

1 个答案:

答案 0 :(得分: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*指出的错误。