マルチスレッドを利用したいのですが、<stdio.h>と<windows.h>と
<process.h>をインクルードしたプログラムで、コンパイラに
_beginthreadexが未定義です。と言われてしまいます。何か
インクルードし忘れているのでしょうか?わかりません。
よろしくお願いします。
少し情報が少ないですねぇ。
Q1.
開発環境は何ですか?
(OS,VCのバージョン,プロジェクトの種類を明記してもらいたい)
Q2・
実際どんなコードになっていますか?
(引数とか変数の型とかを確認したいので載せてもらうのがベスト)
憶測ですが、ライブラリでシングルスレッドを選んでると、そんなのが出たような。
プロジェクトの設定でマルチスレッドorマルチスレッドDLLなことを確認してみてください。
_beginthreadex()はprocess.h内で
#ifdef _MT
...
#endif
に囲まれてるから、コンパイルオプションが"シングルスレッド"になってんじゃないかしらねぇ。
おそくなってすみません。
VisualStudioでマルチスレッドに設定したら問題なく
通りました。ただ、BorlandのC++コンパイラだと解決
できません。これはどうしてでしょうか?
参考までに教えていただけませんか?
コンパイル・オプション -WM (or -tWM) つけてもダメ?
通りました!ありがとうございます。
でも、どうして、-WMなのでしょうか?
理由なんかもご存知でしたら教えていただけませんか?
たびたびすみません。
あのさー、マニュアル読もうよぉ
マルチスレッドファイルをコンパイルするときにWMを
使うようですね。無知ですみません。解決しました。
無知なんじゃない。マニュアル読んでないだけ。
マニュアル読まない人が多いなぁ…
ツイート | ![]() |