我正在尝试使用以下代码从Code :: Blocks IDE中的C语言中获取GUID:
#define _WIN32_WINNT 0x0400
#include <windows.h>
#include <stdio.h>
void getHWID()
{
HW_PROFILE_INFO hwProfileInfo;
if(GetCurrentHwProfile(&hwProfileInfo))
{
printf("Hardware GUID: %s\n", hwProfileInfo.szHwProfileGuid);
printf("Hardware Profile: %s\n", hwProfileInfo.szHwProfileName);
}
}
即使我正在链接并包含所需的所有文件,我仍然会收到这些错误:
在函数'getHWID'中:警告: 隐含的功能声明 'GetCurrentHwProfile'
在函数
中getHWID': undefined reference to
GetCurrentHwProfile'|| ===构建完成:1个错误,1 警告=== |
如果有人遇到此问题或知道如何解决问题,请与我们联系。此外,如果我右键单击HW_PROFILE_INFO
或GetCurrentHwProfile
并点击查找声明,则表示未找到。
我想让这个工作,但我也愿意接受其他简单的方法来完成这项工作。
编辑:我现在已经包含了Winbase.h,它找到了HW_PROFILE_INFO
的声明,但我仍然得到GetCurrentHwProfile
的未定义引用错误
答案 0 :(得分:0)
您是否已将Code :: Blocks配置为包含正确的SDK(我相信此功能是Windows SDK的一部分)?我建议使用Microsoft Visual Studio编写Windows代码。
编辑:我不确定这是否只是你需要做的,但是他们wiki中有一节介绍如何使用微软的编译器。
答案 1 :(得分:0)
更改
GetCurrentHwProfile
到
GetCurrentHwProfileA
或添加
#ifdef UNICODE
#define GetCurrentHwProfile GetCurrentHwProfileW
#else
#define GetCurrentHwProfile GetCurrentHwProfileA
#endif
看看GetCurrentHwProfile was not declared in this scope using MinGW's g++ compiler