0

boost::thread コールバックを使用していくつかのオブジェクト関数を実行しようとしていました

クラス A には、次のような関数があります。

void DoWork(int (*callback)(float))   
{
float variable = 0.0f;

 boost::this_thread::sleep(boost::posix_time::seconds(1));
int result = f(variable);
}

メインで:

int SomeCallback(float variable)
{
  int result;
  cout<<"Callback called"<<endl;
  //Interpret variable

  return result;
}



int main(){
  A* file = new A();

boost::thread bt(&A::DoWork, file , &SomeCallback );
cout<<"Asyns func called"<<endl;
bt.join();
cout<<"main done"<<endl; 
}

この行はリンカエラーboost::thread bt(&A::DoWork, file , &SomeCallback );を引き起こします。このチュートリアルから取ったこの呼び出し: http://antonym.org/2009/05/threading-with-boost---part-i-creating-threads.html

エラーは次のとおりです。

unresolved external symbol "public: void __thiscall A::DoWork(int (__cdecl*)(float))" (?DoWork@A@@QAEXP6AHM@Z@Z) referenced in function _main

このコードの何が問題になっていますか?

4

1 に答える 1