|
はじめまして。VC++.NETをはじめたばかりの初心者です。
スレッド作成でマネージコード問題で教えてください。
クラスに __gc でマネージコード宣言しクラス実装は、
すべてポインタ記述が必要だということはわかったのですが、
プログラムがスレッドクラスのため、マネージコードをthisポインタで
スレッドの引数に引き渡す必要があるんですが、マネージ、アンマネージ問題
でうまくキャストできないようです。
//---------------------------------------------------------------------------
//スレッド用引数
__gc class TParam
{
};
//---------------------------------------------------------------------------
//スレッド作成
bool threadClass::CreateThread(void* thread ,void* bThis)
{
//現在のスレッドのハンドルと解釈される特別な定数(疑似ハンドル)を返す
mainthread=GetCurrentThread();
//_beginthreadexの戻り値はunsigned longなのでHANDLE型でキャストする必要がある
hThread = (HANDLE)_beginthreadex(NULL ,0 ,(THREADFUNC)thread ,(LPVOID)¶m ,0,0);
return true;
}
//---------------------------------------------------------------------------
(LPVOID)¶m 部分がVOID* として宣言してますので、vc++,Netはマネージ
コードで書かれてるため、キャストが必要なのですが、どう書けばいいでしょうか?
よろしくお願いします。
|