• 締切済み

C言語で書いたプログラムをWEBブラウザ上で実行するにはどうしたらいいのでしょうか?

地図上で指定地点から距離10キロ以内にある店舗を検索するというプログラムを組みたいのですが、Cで組んだプログラムをWEBブラウザ上の地図をクリックして実行したいのですが、どのようにしてWEBブラウザ上でプログラムを実行できるのでしょうか?教えてください。よろしくお願いします。

みんなの回答

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.3

ANO.2補足です。 getenv("REQUEST_METHOD");等の環境変数が取得できなければ、 それは、CGIとして(WEBブラウザから)起動されていないので、 エラーとすることになります。

yaema18
質問者

お礼

ご丁寧にどうも有難うございます。やってみます。

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.2

(1)WEB側でクリッカブルマップを作成する (2)クリックされたポイントを数値として<FORM ACTION="~">でC/C++で作成した  CGIに渡す ここまではできているということでOKですか?(ここまではC/C++の世界ではないので割愛します) (3)C/C++でCGIとして起動するアプリを作成し、FORMから得た内容を取得する 普通のC言語だと文字列のポインタ渡しになるかとおもいます。 getenv("REQUEST_METHOD")が "POST" なのか "GET"なのかチェックします。 "GET"だったら、getenv("QUERY_STRING")の値を引数とします。 "POST"だったら、メモリ渡しになるので、 (int*)getenv("CONTENT_LENGTH")を取得します。 (その値の分+1)、メモリを確保します。(malloc とか) getchar()とかでとにかく標準入力からCONETNT_LENGTH分の値をとってきます。 CONTENT_LENGTH+1バイト目にNULL(=\0)を入れておきます。 あとは、普通のC言語と同じです。 渡ってきた引数の値(XXX=xxx&YYY=xxx みたいな文字列になってますが) を使って処理します。 実行結果は、ANo.1さんがおっしゃっているように、タグを標準出力して、ブラウザに戻せばOKです。

  • stiffels
  • ベストアンサー率34% (25/72)
回答No.1

サーバーサイドでCGIとして実行するなら STDOUTへ直接タグ文字列を吐く実行ファイルにするとか クライアント側で実行させたい場合は ActiveXとして配布するといいかもしれませんね。 専門ではありませんので参考までに。

yaema18
質問者

お礼

有難うございました。やってみます。

関連するQ&A