Хорошо.Я думаю, что знаю, куда ты сейчас направляешься.Как насчет этого?Создайте канал в конструкторе класса и затем используйте дескриптор hInputWrite в функции потока класса (вызывается из функции статического потока.
class MyClass
{
HANDLE hInputWrite;
HANDLE hInputRead;
SECURITY_ATTRIBUTES sa;
MyClass() {
if (!CreatePipe(&hOutputReadTmp,&hOutputWrite,&sa,0))
DisplayError("CreatePipe");
}
static DWORD WINAPI StaticThreadStart(void* Param)
{
MyClass* This = (MyClass*) Param;
return This->ThreadStart();
}
DWORD ThreadStart(void)
{
// Do stuff with hInputWrite handle here
}
void startMyThread()
{
DWORD ThreadID;
CreateThread(NULL, 0, StaticThreadStart, (void*) this, 0, &ThreadID);
}
};
MyClass thread;
thread.startMyThread();
(изменено из RichieHindles answer )