Code :: Blocks中的GetCurrentHwProfile(C)

时间:2011-04-11 03:01:38

标签: c undefined

我正在尝试使用以下代码从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_INFOGetCurrentHwProfile并点击查找声明,则表示未找到。

我想让这个工作,但我也愿意接受其他简单的方法来完成这项工作。

编辑:我现在已经包含了Winbase.h,它找到了HW_PROFILE_INFO的声明,但我仍然得到GetCurrentHwProfile的未定义引用错误

2 个答案:

答案 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