_beginthreadexが未定義といわれる

解決


もつに  2006-10-06 08:34:24  No: 63221

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


Blue  2006-10-06 08:38:41  No: 63222

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

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

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


Ban  2006-10-06 16:55:48  No: 63223

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


επιστημη  2006-10-06 20:13:36  No: 63224

_beginthreadex()はprocess.h内で

#ifdef _MT
...
#endif

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


もつに  2006-10-10 04:30:52  No: 63225

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


επιστημη  2006-10-10 04:42:05  No: 63226

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


もつに  2006-10-10 05:39:51  No: 63227

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


επιστημη  2006-10-10 05:49:42  No: 63228

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


もつに  2006-10-10 07:46:25  No: 63229

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


επιστημη  2006-10-10 07:52:05  No: 63230

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


  2006-10-10 12:12:27  No: 63231

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加