• 締切済み

CGIで、ファイルI/Oをしたい!

インターネットプログラミングにおいて、以下のことを教えてください。 Webサーバ:WinNT4.0 IIS CGI :VCで作成(Cです) HTMLのサブミットより、EXEをコールし、そのEXEの中でDLLをコールして 処理を行っているのですが、DLLの中でファイルOPENを行ったところ、アプリケーションエラーが出てしまいます。 このような、EXEからDLLコール・DLL内でファイルのI/Oなんてことはしては いけないのでしょうか? このやり方が、おかしいのであれば正しいやり方を教えて頂ければ助かります。

みんなの回答

  • kenchan
  • ベストアンサー率0% (0/1)
回答No.3

他の人が言われているように、やりかたは間違いないと 思います。ファイルがOPENできないという問題ならば ブラウザ-から実行した時のユーザー権限かなと。 ブラウザ-から起動した場合は、カレントディレクトリ とか環境変数とかユーザーとか異なるので、これらに 依存するファイル名を作成してるとオープンできない と思いますが。IISは不慣れなものではずしているかも しれません。

noname#9414
noname#9414
回答No.2

どのようなアプリケーションエラーが出るのでしょうか。それを補足にて 書いていただけると、よりフォローがつきやすいと思いますよ。 #もしかして、アプリケーションが落ちてしまうの? ではでは☆

honken
質問者

補足

Kanataさん、回答ありがとうございます。 アプリケーションエラーは、DLL側でファイルをOPENしたときの、ファイルハンドラがNULLになってしまい、それをREAD・WRITEするために、起こっているエラーです。要は、ファイルのオープンが出来ないみたいです。 よろしくお願いします。

noname#151056
noname#151056
回答No.1

DLLでファイル操作をすることには問題はないと思います。 VCで作ったEXEをCGIプログラムとして動かしたことはないので よくわかりませんが、 ひょっとしたら そのDLLが、Webクライアント側から見れない位置にあると エラーが出るのかもしれません。 EXEと同じ位置にあればそういう問題もないと思いますが…。 とりあえずサーバ上で単なるEXEとして動かした場合と CGIプログラムとして動かした場合での違いを調べてみるのはどうでしょうか。 違いがないとしたらコーディングに問題があるはずですよね。

honken
質問者

補足

ttyさん、さっそくの回答ありがとうございます。 とりあえず、サーバー上で、単なるEXEとして動かした場合の動作はまったく問題ありませんでした。 ちなみに、DLLにせずに関数としてEXEに組み込んだら、うまく行くんです。 何かわかりましたら、またお願いします。

関連するQ&A