首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

线程同步的SRWLock不能使用,请教怎么解决

2012-06-17 
线程同步的SRWLock不能使用,请问如何解决?在看《windows核心编程》第五版时,编译了该书所提供的例子08-Queue

线程同步的SRWLock不能使用,请问如何解决?
在看《windows核心编程》第五版时,编译了该书所提供的例子08-Queue。
但是在编译后,出现了不少错误,编译结果如下:
1>Compiling...
1>Queue.cpp
1>You are not using the latest Platform SDK header/library 
1>files. This may prevent the project from building correctly.
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(166) : error C2146: syntax error : missing ';' before identifier 'g_srwLock'
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(166) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(166) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(167) : error C2146: syntax error : missing ';' before identifier 'g_cvReadyToConsume'
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(167) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(167) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(168) : error C2146: syntax error : missing ';' before identifier 'g_cvReadyToProduce'
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(168) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(168) : error C2086: 'int CONDITION_VARIABLE' : redefinition
1> d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(167) : see declaration of 'CONDITION_VARIABLE'
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(168) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(197) : error C3861: 'AcquireSRWLockShared': identifier not found
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(210) : error C2065: 'CONDITION_VARIABLE_LOCKMODE_SHARED' : undeclared identifier
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(209) : error C3861: 'SleepConditionVariableSRW': identifier not found
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(221) : error C3861: 'ReleaseSRWLockShared': identifier not found
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(225) : error C3861: 'WakeConditionVariable': identifier not found
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(237) : error C3861: 'ReleaseSRWLockShared': identifier not found
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(245) : error C3861: 'WakeConditionVariable': identifier not found
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(285) : error C3861: 'AcquireSRWLockExclusive': identifier not found
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(298) : error C3861: 'SleepConditionVariableSRW': identifier not found
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(309) : error C3861: 'ReleaseSRWLockExclusive': identifier not found
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(312) : error C3861: 'WakeAllConditionVariable': identifier not found
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(324) : error C3861: 'ReleaseSRWLockExclusive': identifier not found
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(327) : error C3861: 'WakeAllConditionVariable': identifier not found
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(352) : error C3861: 'InitializeSRWLock': identifier not found


1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(355) : error C3861: 'InitializeConditionVariable': identifier not found
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(356) : error C3861: 'InitializeConditionVariable': identifier not found
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(388) : error C3861: 'WakeAllConditionVariable': identifier not found
1>d:\xunlei\windows via c++ code (december 1, 2007)\08-queue\queue.cpp(389) : error C3861: 'WakeAllConditionVariable': identifier not found

从这些编译结果中可以知道,这些实现线程同步机制的函数,没有找到!但是头文件包括了windows.h 和windowsx.h,
可为啥还是出现如上结果呢?

请大家帮忙指点指点。

[解决办法]
你没有安装示例代码所需的基本程序包。
[解决办法]
怀疑你不是用的Vista以上操作系统!!
[解决办法]
还有头文件添加没有?

热点排行