- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用此处的 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);
我看到一点点红色的波浪形,所以我检查了一下,上面写着:
我不知道问题出在哪里我已经有一段时间没有真正使用过 C++ 了,所以我可能只是犯了一个愚蠢的错误。一些谷歌搜索让我想到了一个 SO 问题,该问题说类型没有定义,因为没有包含正确的 header ,但是(如果我错了,请纠正我)我认为 HRESULT
是在 Windows.h
中定义。
有人能看出这段代码有问题吗?它是一个 Win32 控制台应用程序,我使用的是 Visual Studio 2015。
最佳答案
下面的代码必须进入一个函数..
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*
状态。
关于c++ - 使用 CoInitializeEx 分配 HRESULT 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33004956/
我有一个调用 C++ 方法的 C# 方法。C++ 方法使用 WMI,因此它先调用 CoInitializeEx(0, COINIT_MULTITHREADED),然后调用 CoInitializeSe
我正在通过 C++ 学习 COM。来自 MSDN : Applications are required to use CoInitializeEx before they make any othe
我正在为 DSLR 相机开发一个 SDK,其中包含以下说明: Notes on Developing Windows Applications When creating applications t
尝试使用 hres = CoInitializeEx(0, COINIT_MULTITHREADED); 时出现以下错误 error C2065: 'CoInitializeEx' : undecla
我正在使用 WinAPI 函数 ShellExecuteEx() 在 Windows 资源管理器中打开一个文件夹。 根据 MSDN,我应该总是在使用 ShellExecuteEx() 之前调用 CoI
前几天,我决定需要了解 Windows 平台上 C++ 的测试驱动开发(使用 Visual Studio 2010 Premium)。 在决定试用 boost 的单元测试框架之前,我环顾四周。我应该说
我正在尝试使用此处的 Microsoft 教程为 WMI 编程设置 COM 连接。我稍微修改了示例代码以适合我的风格。到目前为止,我的代码如下: #include #include #includ
我们有一个用 Go 编写的监控代理,它使用许多 goroutines 从 WMI 收集系统指标。我们最近发现当 go 二进制文件在 Server 2016 或 Windows 10(也可能在其他使用
前段时间,我不得不修改一个旧的 COM DLL(Visual C++ 2010,ATL),将它从“Apartment”线程模型迁移到“Both”,即现在可以从 STA 和 MTA 线程调用它而无需序列
在一个线程中,如果我使用 有什么区别吗 Coinitialize(nil) 而不是 CoInitializeEx(0, COINIT_MULTITHREADED); 我使用 Delphi 7,但我认为
我正在尝试将一些 OpenCV 功能集成到我的应用程序中。目前,我已使用 DirectShow 设置代码以从我的相机获取视频源,然后将其显示在 MFC 窗口中。此代码无法更改或删除。 代码运行完全正常
我是一名优秀的程序员,十分优秀!