ネタ元:[OpenMP]分身!
質問されました。
>PPL では、WriteConsole
関数ではなく、_tprintf
関数が使えると書かれていますね。
質問は、ここですよね?
私のエントリーでは、_tprintf 関数が使えるとは書いていません。書いたのは、
「PPLが使えるランタイムライブラリは、マルチスレッド版なのでCRTの各関数も利用できます。」
です。同じようですが同じではありません。元ネタを肴にしてなぜそっち?とやるべきだったのかな。。。CreateThread API を引き合いに出してる時点でかなり間違っています。
OpenMPは、コンパイラ拡張ですが、特定のコンパイラの実装に依存できるため、そのコンパイラ用のライブラリにも依存することができます。
PPLはそもそもライブラリ実装ですので、そのライブラリにある関数すべてが利用できます。
ですが、APIはOSの機能であるため、特定の開発環境に依存しません。それこそランタイムライブラリが別途必要であるということにすら依存しません。
したがって、CreateThread API は呼び出す側がスレッドを作成し、利用する場合何らかの初期化処理を必要とするのか?ということ自体を知りませんし、知る必要もありません。もちろんサンプルベースであってもです。
そのため、CreateThread のサンプルではそういった特定の環境に依存しない記述としておかなければならず、昔からそういう記述でなされてきています。
私がネタ元とした、OpenMP 面白い ですが、こちらを引き合いに出す時に、CreateThread のサンプルを使ったのがそもそもの間違い。。。というべきだったのでしょうか?ここは、_beginthread か _beginthreadex のサンプルを使うべきだ!と。。。
WriteFileの部分については、また別のエントリーであげます。こっちはお題的に別の理由で取り上げたかったネタなので。。。