エスパーが質問に答えるスレat TECH
エスパーが質問に答えるスレ - 暇つぶし2ch191:デフォルトの名無しさん
09/12/29 14:52:41
環境:VisualStudio2008
言語:C++(使ってるlibの内部はCかも)

CのFILE*って、スレッドをまたぐと無効になったりするのでしょうか?

ネットで拾ったlibをプログラムに組み込んでみたところ、
そのlibの中でfopenしたファイルポインタはきちんと使えてるのですが、
libの外でfopenしたポインタを渡すように少しlibのソースを改造すると
途中で例外が出てプログラムが止まるようになります。

自分で調べた限りでは、(おそらくlibの中で呼んでる)fseek関数の中で _lock_str(FILE*) したときに
「ファイルのロックを行うifブロックに流れている」のですが、
外からファイルポインタを渡すとそのifブロックを外れてelseで EnterCriticalSection という関数に流れてしまい
それが例外を吐いているようです。

libがfopenする前にスレッドを分けている感じなので、
ひょっとしたらマルチスレッドが原因なのかな?と思っているのですが、そんなもんなんでしょうか

192:デフォルトの名無しさん
09/12/29 14:54:25
/MTと/MDの差?
エラーをNODEFAULTLIBとかで無理やり抑えたとか

193:デフォルトの名無しさん
10/01/07 21:51:43
>>191
無効にはならないことが問題になるのでスレッドをまたいだらNG

194:デフォルトの名無しさん
10/06/23 18:16:08
h

195:デフォルトの名無しさん
10/06/25 20:56:13
エスパーが質問するスレでございます

196:デフォルトの名無しさん
10/06/26 01:15:22
Sパー(Superパー)が質問するスレでございます

197:デフォルトの名無しさん
10/06/29 08:16:28
24時間以内に質問は来ないな。

198:デフォルトの名無しさん
10/06/29 17:30:01
俺は何がしたいんだろう。

199:デフォルトの名無しさん
10/06/29 18:11:46
質問来ましたね、9時間ちょっとで

200:197
10/06/30 14:52:41
>>199
198はエスパー

201:デフォルトの名無しさん
10/07/14 09:28:47
なぜ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch