c++ - 条件变量函数未在此范围内声明

标签 c++ multithreading winapi msdn condition-variable

这是我第一次使用 WINAPI 以及 SleepConditionVariableCSWakeConditionVariableWaitForMultipleObjectsInitializeConditionVariable 等功能> Eclipse IDE 告诉我它们没有在此范围内声明。

所有这些都应该包含在同一个库 windows.h 中,所以我不知道有什么问题,因为其他函数如 ExitThreadReleaseSemaphoreWaitForSingleObject 运行没有任何问题。

这可能是我的 C++ 版本有问题?或者它存在任何其他库来包含?

谢谢

最佳答案

SleepConditionVariableCS 的文档(或任何其他 WIndows API 调用)告诉您支持的最低客户端和服务器操作系统。 API 调用是根据您的目标平台设置有条件地声明的。

您可以通过设置某些预处理器宏来控制您的目标平台(有关信息,请参阅 Using the Windows Headers)。在您的情况下,您需要添加

#define WINVER 0x0600

在包括 Windows.h 之前,目标是 Windows Vista 和更高版本。通常的做法是在命令行上定义预处理器宏,以便在所有编译单元中使用一致的环境。

关于c++ - 条件变量函数未在此范围内声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37361097/

相关文章:

c++ - Windows 上的快速计数信号量?

java - 了解 Java Wait 和 Notify 方法

C++11 右值两次调用析构函数

c++ - 在 Delphi 6 中使用 C++ DLL

c++ - 构造函数和继承 C++

c++ - 使用自定义标识调用 QueryInterface

c++ - `constexpr`和 `const`之间的区别

c++ - 卡在 _dl_sysinfo_int80 上的多线程应用程序

c++ - SDL2 + Win32 API 菜单栏单击事件不起作用

c++ - 棘手的 InterlockedDecrement 与 CriticalSection