c – 窗口中的CONDITION_VARIABLE;不会编译
作者:互联网
我正在尝试为C语言编写一个为Linux编写的程序的Windows版本.为了使程序成为线程安全的,我在Linux版本中使用pthread_cond_t和pthread_cond_wait.这些函数使用互斥锁来帮助确保等待的线程实际上正在等待.
我发现CONDITION_VARIABLE可以在Windows中做到这一点,但我无法弄清楚为什么它不会编译.我收到错误“错误:’CONDITION_VARIABLE’没有命名类型”,即使包含了所有相关的标题,据我所知.我试着在http://msdn.microsoft.com/en-us/library/ms686903%28v=VS.85%29.aspx上复制粘贴代码,它也不会编译.我正在使用GCC.
关于如何编译这个的任何想法?或任何其他方法,不涉及condition_variables?
解决方法:
你在#include< windows.h>之前定义了_WIN32_WINNT和WINVER吗?
这必须包含仅在Windows的更高版本中添加的内容的定义.对于条件变量,您需要将这些变量设置为至少0x0600,因为条件变量在V6中是新的(即Vista / 2008).
见http://msdn.microsoft.com/en-us/library/aa383745%28VS.85%29.aspx
标签:c,gcc,windows,condition-variable 来源: https://codeday.me/bug/20191006/1862772.html