【標準C++】C++相談室 part39【STL含む】
■ このスレッドは過去ログ倉庫に格納されています
0349デフォルトの名無しさん
05/02/01 02:45:33あるクラスのメンバ関数で定義したスレッド処理関数を、_beginthreadex関数などで呼び出すことはできないのでしょうか?
VC++6.0でコンパイル時、error C2276: '&' : 仮想関数のアドレスを取ろうとしました。
というエラーが出てしまいます。
具体的には以下のようになります。
class ClassA{
HANDLE hThread; /* スレッドハンドル */
WORD dwThreadID; /* スレッドID */
UINT WINAPI ThreadFunc( void *Param ) /* スレッド処理関数 */
{
・・・
};
public:
void ThreadStart() /* スレッド開始用関数 */
{
・・・
hThread = (void*)_beginthreadex( NULL,
0,
&ThreadFunc, /* ここがマズイようです */
NULL,
0,
(unsigned *)&dwThreadID
);
・・・
};
ちなみに、このスレッド処理関数をクラスの外(グローバル)で定義した場合は、問題なくコンパイルでき実行できます。
■ このスレッドは過去ログ倉庫に格納されています