不能在 wxWidgets 应用程序中包含 std::thread header

Cannot include std::thread header in wxWidgets application

我有以下代码:

#include "wx\wx.h"

class BClient : public wxApp
{
   virtual bool OnInit();
   virtual int  OnQuit();
};

IMPLEMENT_APP(BClient)

bool BClient::OnInit()
{

    return true;
}

int BClient::OnQuit()
{

    return 0;
}

一旦我尝试添加行

#include <thread>

我收到这个错误:

Error 10 error C2347: '__w64' : can not be used with type '__w64 unsigned __int64'

Error 12 error C2143: syntax error : missing ';' before ','

Error 13 error C2059: syntax error : ','

错误参考这个文件:c:\program files (x86)\microsoft visual studio 12.0\vc\include\concrt.h

所以,出于某种原因,wxwidgets 和 std::thread 不能混合在一起。

有人可以向我解释为什么会发生这种情况吗?是否有解决此问题的方法?

谢谢。

您的 MSVS 安装有问题。在这里,在 #include <wx/wx.h> 之前或之后添加 #include <thread> 行没有任何问题。

此外,在完全不相关的注释中,基数 class 中没有 OnQuit(),只有 OnExit().