SignalObjectAndWait问题

jolley 2008-04-29 04:45:29
我在MSVC6里的win32 console工程里面写了一段这样的代码,已经去掉了不必要的代码已达到注意重点地目点:
#include <winbase.h>
#include <windows.h>
switch( dwWaitResult = ::SignalObjectAndWait(
m_hLogItemSendEvent,
m_hLogItemReceivedEvent,
MUTEX_LOCK_TIMEOUT,
FALSE ) )
{
case WAIT_OBJECT_0:
::ResetEvent( m_hLogItemReceivedEvent );
::ResetEvent( m_hLogItemSendEvent );
break;
case WAIT_TIMEOUT:
throw AutoLock::CAutoLockTimeoutExc( MUTEX_LOCK_TIMEOUT * 10 );
break;
default:
throw AutoLock::CAutoLockWaitExc( dwWaitResult, ::GetLastError() );
}
编译以后,得到以下两个错误:

error C2039: 'SignalObjectAndWait' : is not a member of '`global namespace''
error C2065: 'SignalObjectAndWait' : undeclared identifier

我在msdn上面已经查找到了SignalObjectAndWait在winbase里面声明,而在windows里面定义的。但是我在上面的代码片断里面已经给出了相关头文件。却在编译的时候出现两个错误。

之前以为是名字空间冲突的原因,因为有两个名字空间,全局名字空间和AutoLock名字空间,后来在AutoLock空间的函数都加上了AutoLock::前缀,还是不能解决问题。
请大家帮忙看看。先谢谢啦。:)
...全文
495 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jolley 2008-04-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yxz_lp 的回复:]
C/C++ code
#if(_WIN32_WINNT >= 0x0400)
WINBASEAPI
DWORD
WINAPI
SignalObjectAndWait(
IN HANDLE hObjectToSignal,
IN HANDLE hObjectToWaitOn,
IN DWORD dwMilliseconds,
IN BOOL bAlertable
);
#endif /* _WIN32_WINNT >= 0x0400 */
//版本问题??
[/Quote]
呵呵,可能是把,但是不能确定,我开始也怀疑了,不过我这个是英文版本的xp呀,再怎么说,也是NT系统之后的了吧,我也打开了winbase.h里面看了。也发现了这个函数声明,但是因为系统产生这种错误的可能性应该比较少吧。不过我刚才作了一件很傻的事情,我把条件编译的东西去掉了,然后rebuild all就通过了。
谢谢呀,汗,英文系统不过如此。
太诡异了,我头一回遇到这样的问题。
[Quote=引用 2 楼 zoulie 的回复:]
将#include <winbase.h>
#include <windows.h>
位置换一下
[/Quote]
不是这个的问题,这个我以前试过,大不了就是头文件包含冗余,而不至于会出错呀。
cnzdgs 2008-04-29
  • 打赏
  • 举报
回复
在stdafx.h中,所有#include之前加上:
#define _WIN32_WINNT 0x0400 // 或者更大
yxz_lp 2008-04-29
  • 打赏
  • 举报
回复

#if(_WIN32_WINNT >= 0x0400)
WINBASEAPI
DWORD
WINAPI
SignalObjectAndWait(
IN HANDLE hObjectToSignal,
IN HANDLE hObjectToWaitOn,
IN DWORD dwMilliseconds,
IN BOOL bAlertable
);
#endif /* _WIN32_WINNT >= 0x0400 */
//版本问题??
zoulie 2008-04-29
  • 打赏
  • 举报
回复
将#include <winbase.h>
#include <windows.h>
位置换一下

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧