C++ 在Windows 10通用应用程序中使用Boost
我正在开发Windows10通用应用程序,主要针对Windows手机。尝试使用boost时,会出现如下错误:C++ 在Windows 10通用应用程序中使用Boost,c++,boost,windows-10,win-universal-app,C++,Boost,Windows 10,Win Universal App,我正在开发Windows10通用应用程序,主要针对Windows手机。尝试使用boost时,会出现如下错误: boost/asio/detail/impl/win_thread.ipp(48): error C2039: 'TerminateThread': is not a member of '`global namespace'' 据我所知,出现这个问题是因为boost使用了win32 api,而Windows 10通用应用程序不支持该api。我尝试了1.58(当前官方版本)和1.59(
boost/asio/detail/impl/win_thread.ipp(48): error C2039: 'TerminateThread': is not a member of '`global namespace''
据我所知,出现这个问题是因为boost使用了win32 api,而Windows 10通用应用程序不支持该api。我尝试了1.58(当前官方版本)和1.59(候选版本)。有我丢失的旗帜吗?您是否有任何与boost和Windows通用应用程序支持相关的信息
我已经创建了最小程序来重现此错误:
#include <boost/asio.hpp>
int main()
{
return 0;
}
并非所有Boost库都可用于Windows通用应用程序。使更多应用程序可用于通用应用程序的工作正在进行中。以下是更多信息: 文章作者史蒂文·盖茨(Steven Gates)评论说Boost.Asio可能使用了被禁止的API。我无法链接到个人评论,因此在此部分引用(我的重点): 史蒂文·盖茨 @李宁82:Boost.ASIO依赖于WinSock API,而WinSock API最近才被允许在Windows Phone 8上使用。但是我敢打赌,ASIO正在使用其他被禁止的API,您必须替换这些API 此外,CreateThread、CreateThreadPool等在Windows通用应用程序中不可用 如上所述,我将假设您必须使用Boost.Asio以外的其他工具,这里有一些其他信息可能会有所帮助: 模拟多线程的推荐方法是使用。您也可以使用 为了完成这项工作,这里有一份清单。和
希望这有帮助。将其报告为bug,如果不需要asio,则将其从构建中排除。
FlsAlloc
允许用于应用商店应用,但TerminateThread
不允许;它是。您是否需要任何特殊标志来构建具有商店兼容性的Boost?(抱歉,我不知道Boost)。Marcin正在询问C++,但是,你建议使用<代码>任务。运行< /COD>和c:\program files (x86)\windows kits\10\include\10.0.10240.0\um\processthreadsapi.h(491): error C3861: 'FlsAlloc': identifier not found