_beginthreadexが未定義といわれる

解決


もつに  2006-10-05 23:34:24  No: 63221  IP: [192.*.*.*]

マルチスレッドを利用したいのですが、<stdio.h>と<windows.h>と
<process.h>をインクルードしたプログラムで、コンパイラに
_beginthreadexが未定義です。と言われてしまいます。何か
インクルードし忘れているのでしょうか?わかりません。
よろしくお願いします。

編集 削除
Blue  2006-10-05 23:38:41  No: 63222  IP: [192.*.*.*]

少し情報が少ないですねぇ。

Q1.
開発環境は何ですか?
(OS,VCのバージョン,プロジェクトの種類を明記してもらいたい)

Q2・
実際どんなコードになっていますか?
(引数とか変数の型とかを確認したいので載せてもらうのがベスト)

編集 削除
Ban  2006-10-06 07:55:48  No: 63223  IP: [192.*.*.*]

憶測ですが、ライブラリでシングルスレッドを選んでると、そんなのが出たような。
プロジェクトの設定でマルチスレッドorマルチスレッドDLLなことを確認してみてください。

編集 削除
επιστημη  2006-10-06 11:13:36  No: 63224  IP: [192.*.*.*]

_beginthreadex()はprocess.h内で

#ifdef _MT
...
#endif

に囲まれてるから、コンパイルオプションが"シングルスレッド"になってんじゃないかしらねぇ。

編集 削除
もつに  2006-10-09 19:30:52  No: 63225  IP: [192.*.*.*]

おそくなってすみません。
VisualStudioでマルチスレッドに設定したら問題なく
通りました。ただ、BorlandのC++コンパイラだと解決
できません。これはどうしてでしょうか?
参考までに教えていただけませんか?

編集 削除
επιστημη  2006-10-09 19:42:05  No: 63226  IP: [192.*.*.*]

コンパイル・オプション -WM (or -tWM) つけてもダメ?

編集 削除
もつに  2006-10-09 20:39:51  No: 63227  IP: [192.*.*.*]

通りました!ありがとうございます。
でも、どうして、-WMなのでしょうか?
理由なんかもご存知でしたら教えていただけませんか?
たびたびすみません。

編集 削除
επιστημη  2006-10-09 20:49:42  No: 63228  IP: [192.*.*.*]

あのさー、マニュアル読もうよぉ

編集 削除
もつに  2006-10-09 22:46:25  No: 63229  IP: [192.*.*.*]

マルチスレッドファイルをコンパイルするときにWMを
使うようですね。無知ですみません。解決しました。

編集 削除
επιστημη  2006-10-09 22:52:05  No: 63230  IP: [192.*.*.*]

無知なんじゃない。マニュアル読んでないだけ。

編集 削除
 2006-10-10 03:12:27  No: 63231  IP: [192.*.*.*]

マニュアル読まない人が多いなぁ…

編集 削除