重要そうなところは太文字にしてみた。
クラス宣言
class Caaaa
{
private:
HANDLE threadHandle;
public:
unsigned int __stdcall Execute(); // スレッド実体
static unsigned int __stdcall executeLauncher(void* args); // スレッドのランチャー
static unsigned int __stdcall executeLauncher(void* args); // スレッドのランチャー
};
スレッドのランチャー
unsigned int __stdcall Caaaa::executeLauncher(void* args)
{
reinterpret_cast<Caaaa*>(args)->Execute();
return 0;
}
unsigned int __stdcall Caaaa::executeLauncher(void* args)
{
reinterpret_cast<Caaaa*>(args)->Execute();
return 0;
}
実際に行いたいスレッド実体
unsigned int __stdcall Caaaa::Execute()
{
// ここにスレッドの処理をごにょごにょと。
_endthreadex( 0 );
return 0;
}
スレッド起動したいところで
threadHandle= (HANDLE)_beginthreadex(NULL, 0, &Caaaa::executeLauncher, this, 0, NULL);
という感じで動いた(XE2で)
threadHandle= (HANDLE)_beginthreadex(NULL, 0, &Caaaa::executeLauncher, this, 0, NULL);
という感じで動いた(XE2で)