作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Windows API 获取各种硬件信息,例如 CPU 使用情况和电池信息。我一直在尝试按照本指南获取电池设备名称的名称 http://msdn.microsoft.com/en-us/library/windows/desktop/bb204769%28v=vs.85%29.aspx但是当我到达这里时我被困住了。
#define INITGUID
#include<windows.h>
#include<batclass.h>
#include<setupapi.h>
#include<devguid.h>
using namespace std;
int main()
{
HDEVINFO hdev = SetupDiGetClassDevs(&GUID_DEVCLASS_BATTERY, 0, 0, DIGCF_PRESENT
| DIGCF_DEVICEINTERFACE);
}
但我收到以下错误
[Linker error] C:\Users\Owner\AppData\Local\Temp\ccTMeaf9.o:Untitled1.cpp:(.text+0x28): undefined reference to `__imp_SetupDiGetClassDevsA' collect2: ld returned 1 exit status
我是 C++ 的初学者,所以我可能遗漏了一些明显的东西,但他们在指南中是这样做的。任何建议都会很棒。
最佳答案
文档撒谎,GUID 实际上是在 devguid.h 中定义的。另外(如果你还没有在另一个源文件中这样做)你需要
#define INITGUID
在包含 BatClass.h 和 devguid.h 之前。如果您的项目中没有一次,您将在链接时收到一个 undefined symbol 错误,如果您有多个定义的符号,您将在链接时收到一个多重定义的符号错误。
关于c++ - 枚举电池设备 c++ windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14762154/
我是一名优秀的程序员,十分优秀!