したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

管理人の独り言(プログラミング関連)

2793ACUVE★:2010/10/13(水) 21:56:53
>MSVCでスタティックリンクのマルチスレッドのランタイムライブラリを使ってはならない。リソースリークが完全に防げないからだ。DLL版は、DllMainでDLL_THREAD_DETACHを補足することによって、CRTに必要なリソースを開放しているので、リークは起こらない。
-----
例えば
char *strtok(char *s1, const char *s2);
の事だな。俺はこれしか知らないが。
strtokは内部にstaticな変数を持っているが、マルチスレッドだったらそれぞれのスレッドで一つ持たないようにしなければならない。
その初期化処理の為に__beginthread(ex)が存在するわけだ。
しかし、スレッドの終了時には関数を呼び出したりはしない。(returnするだけでいい)
というわけで、メモリリークが発生する。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板