今日はまったので備忘.

WIN32 API の CreateFiber などのファイバ関連の関数を利用するためには、コンパイルオプションなどで

_WIN32_WINNT=0x400

とする必要がある。これは、_WIN32_WINNT の定義が見つからない場合 CreateFiber のシンボルが定義されないためである。WinBase.h 参照。

あと、LPFIBER_START_ROUTINE と LPTHREAD_START_ROUTINE のシグニチャが微妙に違ってスレッドプロシージャをファイバのプロシージャとして流用できないのはちょっとしょぼいと思う。

参照

[Fibers - Windows applications Microsoft Docs](http://msdn.microsoft.com/en-us/library/ms682661(VS.85).aspx)