为啥在包含 Microsoft SDK 中的 BluetoothAPIs.h 时会收到语法错误?

Posted

技术标签:

【中文标题】为啥在包含 Microsoft SDK 中的 BluetoothAPIs.h 时会收到语法错误?【英文标题】:Why do I receive syntax error when including BluetoothAPIs.h from Microsoft SDK?为什么在包含 Microsoft SDK 中的 BluetoothAPIs.h 时会收到语法错误? 【发布时间】:2015-04-23 08:08:36 【问题描述】:

当我尝试包含 BluetoothAPIs.h 时,编译器会显示多个语法错误,例如。 g.:

[C++ Error] BluetoothAPIs.h(133): E2141 Declaration syntax error
[C++ Error] BluetoothAPIs.h(171): E2238 Multiple declaration for '__checkReturn'
...

这是BluetoothAPIs.h“无效”部分代码:

第 132-138 行:

__checkReturn
HBLUETOOTH_RADIO_FIND
WINAPI
BluetoothFindFirstRadio(
    __in const BLUETOOTH_FIND_RADIO_PARAMS * pbtfrp,
    __out HANDLE *                      phRadio
    );

第 170-176 行:

__checkReturn
BOOL
WINAPI
BluetoothFindNextRadio(
    __in  HBLUETOOTH_RADIO_FIND hFind,
    __out HANDLE * phRadio
    );

我从 Microsoft SDK 获取的 .h 文件。

UPD 2021:

我从未意识到真正导致错误的原因,但似乎使用 Visual Studio 而不是 Dev-C++ 可以解决问题。现在我想知道我应该改变什么才能让它在 Dev-C++ 中工作?

【问题讨论】:

【参考方案1】:

当您说“我从 Microsoft SDK 获取的 .h 文件”时,您的意思是: a) SDK 安装在我的机器上并且可以在我的 IDE 中访问? b) 我只拿到了这个文件?

如果 b) 则您丢失了很多文件...

宏 __checkReturn 的第一次出现在 BluetoothAPIs.h 的第 132 行,你提到的那个...

【讨论】:

谢谢,但我已经找到了解决方案。我安装了 Visual Studio,现在在它下工作。 你现在,如何使用其他IDE访问SDK,例如Dev-C++? 我正在使用 Visual Studio 并且不知道 Dev-C++... 但是,无论如何,可能有一个设置(编译器设置?IDE 设置?),您可以在其中输入完整路径“包括”文件夹(即 SDK 文件夹)。也许您可以将此路径添加到Windows的“PATH =”环境变量中...

以上是关于为啥在包含 Microsoft SDK 中的 BluetoothAPIs.h 时会收到语法错误?的主要内容,如果未能解决你的问题,请参考以下文章

Windows XP 和 Windows 98 中的 Microsoft Windows SDK 文件夹在哪里?

MSGraphMailbag - 对 Microsoft Graph PowerShell SDK 的深入研究

MSGraphMailbag - 对 Microsoft Graph PowerShell SDK 的深入研究

为啥只能在 Android SDK QuickBlox 上进行第一次视频通话?

如果无法识别引用,则使用Microsoft.NET.Sdk.Razor时发布失败,但构建工作正常

为啥 CLLocationManager 在模拟器中的 iphone SDK 4 beta 上返回空位置?