所以我试图通过 SFML 创建一个线程,但我的代码只是产生了一个错误,我已经尝试修复了几个小时。
这是我不断收到的错误:
d:\c++\engine\deps\sfml-2.1\include\sfml\system\thread.inl(39): error C2064: term does not evaluate to a function taking 0 arguments
1> d:\c++\engine\deps\sfml-2.1\include\sfml\system\thread.inl(39) : while compiling class template member function 'void sf::priv::ThreadFunctor<T>::run(void)'
1> with
1> [
1> T=Thread *
1> ]
1> d:\c++\engine\deps\sfml-2.1\include\sfml\system\thread.inl(70) : see reference to class template instantiation 'sf::priv::ThreadFunctor<T>' being compiled
1> with
1> [
1> T=Thread *
1> ]
1> d:\c++\engine\src\engine\thread.cpp(20) : see reference to function template instantiation 'sf::Thread::Thread<Thread*>(F)' being compiled
1> with
1> [
1> F=Thread *
1> ]
这是我的线程代码
#include "Thread.h"
Thread::Thread(void)
{
threadRunning = false;
}
ThreadException::ThreadException(string err)
{
this->err = err;
}
void Thread::Begin()
{
if(threadRunning == true) {
throw ThreadException("Thread already running");
}
threadRunning = true;
sf::Thread thread = (&Thread::ThreadProc, this);
thread.launch();
}
bool Thread::IsRunning()
{
return threadRunning;
}
线程.cpp
#pragma once
#include <SFML\System.hpp>
#include <iostream>
using namespace std;
class Thread
{
private:
bool threadRunning;
public:
void Begin();
Thread();
bool IsRunning();
void ThreadProc();
};
class ThreadException : public exception
{
public:
const char * what() const throw()
{
return "Thread Exception";
}
std::string err;
ThreadException(string err);
~ThreadException() throw() {};
};
所以我需要的是修复或解释这里发生的事情我已经尝试了我能想到的一切来解决这个问题