首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SFML线程错误

SFML线程错误
EN

Stack Overflow用户
提问于 2015-12-06 06:15:32
回答 1查看 113关注 0票数 0

我和一个朋友正在做一个简单的多人游戏来练习我们的编码。不幸的是,我们遇到了一个问题。SFML线程系统(因为我的编译器还不支持它而不使用std::线程)给了我一个错误。

||===编译:===| C:\===|\Name\ work\Clear_Void\src\GameScreen.cpp||In \work\Clear_Void\src\GameScreen.cpp||In构造函数‘GameScreen::GameScreen()’ C:\Users\Name\Documents\Coding\SFML work\Clear_Void\src\GameScreen.cpp|9|error: ISO C++禁止使用不合格或括号大小的非静态成员函数的地址来形成指向成员函数的指针。“&GameScreen::startThread”-fpermissive| C:\SFML-TDM471x32\include\SFML\System\Thread.inl||In实例化'void::priv::ThreadFunctor::run()与T= void (GameScreen::*)()‘ C:\Users\Name\Documents\编码\SFML work\Clear_Void\src\GameScreen.cpp|53|required从这里转到这里 C:\SFML-TDM471x32\include\SFML\System\Thread.inl|39|error:必须使用“.”或‘-’调用'((sf::priv::ThreadFunctor)this)->sf::priv::ThreadFunctor::m_functor (.)中的指针到成员函数,例如‘(. -> ((sf::priv::ThreadFunctor*)this)->sf::priv::ThreadFunctor::m_functor) (.) ||===构建失败:2错误(S),2(S)警告(0分钟,4秒) ===|

这是我的代码: GameScreen.h

代码语言:javascript
复制
class GameScreen : public Screen
{
public:
    GameScreen();

    void handleInput(sf::RenderWindow&) override;
    void update(sf::RenderWindow&, sf::View&) override;
    void render(sf::RenderWindow&) override;

    void startThread();


private:
    sf::Vector2f moveVal;
    Network network;
    Events eventManager;

    Map m_map;

    sf::Thread networkThread;
};

GameScreen.cpp (相关组)

代码语言:javascript
复制
GameScreen::GameScreen()
: networkThread(&startThread)
{
    network.Connect();
}

我检查了SFML线程教程,并根据它们,这应该是可行的。请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-06 07:02:19

startThread应该是静态的。通常,线程函数不能调用非静态成员函数.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34114658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档