这是我第一次使用 WINAPI 以及 SleepConditionVariableCS 、 WakeConditionVariable 、 WaitForMultipleObjects 和 InitializeConditionVariable 等功能> Eclipse IDE 告诉我它们没有在此范围内声明。
所有这些都应该包含在同一个库 windows.h 中,所以我不知道有什么问题,因为其他函数如 ExitThread 、ReleaseSemaphore和 WaitForSingleObject 运行没有任何问题。
这可能是我的 C++ 版本有问题?或者它存在任何其他库来包含?
谢谢
最佳答案
SleepConditionVariableCS 的文档(或任何其他 WIndows API 调用)告诉您支持的最低客户端和服务器操作系统。 API 调用是根据您的目标平台设置有条件地声明的。
您可以通过设置某些预处理器宏来控制您的目标平台(有关信息,请参阅 Using the Windows Headers)。在您的情况下,您需要添加
#define WINVER 0x0600
在包括 Windows.h 之前,目标是 Windows Vista 和更高版本。通常的做法是在命令行上定义预处理器宏,以便在所有编译单元中使用一致的环境。
关于c++ - 条件变量函数未在此范围内声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37361097/