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

时间:2016-05-21 09:24:20

标签: c++ multithreading winapi msdn condition-variable

这是我第一次使用WINAPI并使用 SleepConditionVariableCS WakeConditionVariable WaitForMultipleObjects InitializeConditionVariable <等功能/ strong> Eclipse IDE告诉我他们没有在此范围内声明。

所有这些都应该包含在同一个lib windows.h 中,所以我不知道它的失败是什么,因为其他函数如 ExitThread ReleaseSemaphore WaitForSingleObject 正在运行,没有任何问题。

我的c ++版本可能有问题吗?或者它包含任何其他库?

由于

1 个答案:

答案 0 :(得分:4)

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

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

#define WINVER 0x0600

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