AfxBeginThread について


やす  2010-04-21 06:02:27  No: 71566

VC++2008  MFCにてProgram作成初心者です。

AfxBeginThreadを使ってマルチスレッドを試みているのですが
'CMainFrame::WorkThread': 関数呼び出しには引数リストがありません。メンバへのポインタを作成・・・
でエラーとなってしまいます。
どこが悪いのかアドバイスをいただける方がいましたら助かります。

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
  if( !CFrameWnd::PreCreateWindow(cs) )
    return FALSE;
  // TODO:
  AfxBeginThread(WorkThread,this);
  return TRUE;
}

UINT CMainFrame::WorkThread(LPVOID pParam)
{
  return 0;
}
以上、よろしくおねがいします。


瀬戸っぷ  2010-04-21 09:14:25  No: 71567

クラスの非スタティック関数をAfxBeginThread()で呼び出せ…ますかね?

http://msdn.microsoft.com/ja-jp/library/s3w9x78e(VS.80).aspx
でも、ワーカースレッドはクラスのメンバではないようですが……。


επιστημη  URL  2010-04-21 17:32:23  No: 71568

http://msdn.microsoft.com/ja-jp/library/s3w9x78e(VS.80).aspx
↑ドキュメントによれば、スレッド・エントリのプロトタイプは
UINT __cdecl MyControllingFunction( LPVOID pParam );
でなくちゃいかんので、staticでないメンバ関数は設定できんです。
# 薄皮一枚かぶせればイケますけども


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加