C++でWin32APIをラップしたようなライブラリを作ってるんだけど、スレッド機能の実装にて。 スレッドを開始するには_beginthreadex関数を使用する 主な引数は呼び出す関数の開始アドレスとそれに渡す引数(void*型) で、関数は__stdcall呼び出し規約である必要があって、戻り値がunsigned、引数がvoid*である必要がある。 そして重要なのは「仮想関数はアドレスが取れない」という事実。 ま、仮想関数が使いたければこんな風にやるわけだ。 class Thread { public: virtual ~Thread() {} void start(); virtual void run() = 0; private: static unsigned __stdcall run_(void*); }; void Thread::start() { // thisポイン