"CreateEvent":不是 ASIO 中"全局命名空间"的成员
'CreateEvent': is not a member of '`global namespace'' in ASIO
我正在做一个包含ASIO的项目。 我添加了库和头文件,但是当我有一个包含 asio.hpp
的文件时,我收到以下错误:
1>c:usersmedocumentsof_v0.9.1_vs_releaseaddonsofxasiolibsasio-1.10.6includeasio/detail/config.hpp(229): warning C4005: 'ASIO_ERROR_CATEGORY_NOEXCEPT': macro redefinition (compiling source file srcofApp.cpp)
1> c:usersmedocumentsof_v0.9.1_vs_releaseaddonsofxasiolibsasio-1.10.6includeasio/detail/config.hpp(215): note: see previous definition of 'ASIO_ERROR_CATEGORY_NOEXCEPT' (compiling source file srcofApp.cpp)
1>c:usersmedocumentsof_v0.9.1_vs_releaseaddonsofxasiolibsasio-1.10.6includeasio/detail/impl/win_thread.ipp(59): error C2039: 'CreateEvent': is not a member of '`global namespace'' (compiling source file srcofApp.cpp)
1>c:usersmedocumentsof_v0.9.1_vs_releaseaddonsofxasiolibsasio-1.10.6includeasio/detail/impl/win_thread.ipp(59): error C3861: 'CreateEvent': identifier not found (compiling source file srcofApp.cpp)
1>c:usersmedocumentsof_v0.9.1_vs_releaseaddonsofxasiolibsasio-1.10.6includeasio/detail/impl/win_thread.ipp(69): error C2039: 'CreateEvent': is not a member of '`global namespace'' (compiling source file srcofApp.cpp)
1>c:usersmedocumentsof_v0.9.1_vs_releaseaddonsofxasiolibsasio-1.10.6includeasio/detail/impl/win_thread.ipp(69): error C3861: 'CreateEvent': identifier not found (compiling source file srcofApp.cpp)
1>c:usersmedocumentsof_v0.9.1_vs_releaseaddonsofxasiolibsasio-1.10.6includeasio/detail/impl/win_iocp_handle_service.ipp(42): error C2039: 'CreateEvent': is not a member of '`global namespace'' (compiling source file srcofApp.cpp)
1>c:usersmedocumentsof_v0.9.1_vs_releaseaddonsofxasiolibsasio-1.10.6includeasio/detail/impl/win_iocp_handle_service.ipp(42): error C3861: 'CreateEvent': identifier not found (compiling source file srcofApp.cpp)
在线研究表明,这可能是由于我需要将_WIN32_WINNT
重新定义为正确的版本号;但是,我已经尝试了一些版本号,并且对上述错误incompatible version of Windows error
或没有解决方案。
我还在 Windows Dev 站点上找到了文档:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms682396%28v=vs.85%29.aspx
我看到旧版本的Windows需要WinBase.h
,Windows 8需要Synchapi.h
。 我正在运行 Windows 8.1;但不幸的是,包括这些选项都没有奏效。
有没有人对可能导致此错误的原因有建议?
该项目的整个来源在这里:https://github.com/morphogencc/ofxAsio/tree/master/example-udpreceiver
我在使用 boost 和 Poco 的项目中遇到了同样的编译器问题。 事实证明,Poco包含一个"UnWindows.h"文件,该文件取消了许多窗口宏的定义。 为了防止 Poco 取消定义宏,我将POCO_NO_UNWINDOWS添加到预处理器定义列表中。 这似乎已经解决了提升问题。
在编译 boost websocket 应用程序时,我收到"CreateEvent:不是 ASIO 中'全局命名空间'的成员"错误。当我编译单个文件时,除了合并所有标头的主应用程序文件外,一切正常。我通过在顶部添加提升标头来更改头文件的顺序。它解决了问题。希望这是有帮助的。
- 命名空间 std 没有成员any_of
- 为什么 Clang 在命名空间'std'中没有名为 'copy' 的成员给出错误
- 初始化命名空间中的变量是否类似于将它们初始化为类成员?
- 在 c++ 中使用类的命名空间定义类的成员
- Catalina C++:使用<cmath>标头产生错误:全局命名空间中没有名为 'signbit' 的成员
- 命名空间 Win 没有成员"simpleControl"是什么意思
- Visual Studio 2017:命名空间"System"没有成员"Windows"
- 如何从嵌套在命名空间中的类调用成员函数?
- 成员的结构与命名空间的潜在范围
- 类成员函数在其命名空间之外定义
- Typedef 不是命名空间的成员
- 无法解析命名空间成员"线程"
- C++中的命名空间成员(使用与不使用)
- 使用不同文件中的命名空间成员
- 非限定名称查找查找内联命名空间成员
- 用户声明的命名空间成员
- ISO c++草案(n3290)中的一点:3.4.3.2/1命名空间成员
- 试图通过using-declaration定义命名空间成员
- Linux CLion 无法解析命名空间成员
- C++命名空间成员在不同文件中的访问如何?"namespace std"如何实施?