Windows中的CONDITION_VARIABLE; 不会编译

pja*_*all 6 c++ windows gcc condition-variable

我正在尝试用C++编写一个用Linux编写的程序的windows版本.对于程序是线程安全的,我用pthread_cond_tpthread_cond_wait在Linux版本.这些函数使用互斥锁来帮助确保等待的线程实际上正在等待.

我发现CONDITION_VARIABLE在Windows 中可能会有这个技巧,但我无法弄清楚为什么它不会编译.我得到错误"错误:'CONDITION_VARIABLE'没有命名类型",即使包括所有相关的标题,据我所知.我试着在http://msdn.microsoft.com/en-us/library/ms686903%28v=VS.85%29.aspx上复制粘贴代码,它也不会编译.我正在使用GCC.

关于如何编译这个的任何想法?或任何其他方法,不涉及condition_variables?

Ric*_*ard 4

你之前定义过_WIN32_WINNTand吗?WINVER#include <windows.h>

这对于包含仅在更高版本的 Windows 中添加的内容的定义是必要的。对于条件变量,您至少需要将它们设置0x0600为 V6 中新增的条件变量(即 Vista/2008)。

请参阅http://msdn.microsoft.com/en-us/library/aa383745%28VS.85%29.aspx