プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (3件)

サーバーサイドでCGIとして実行するなら


STDOUTへ直接タグ文字列を吐く実行ファイルにするとか

クライアント側で実行させたい場合は
ActiveXとして配布するといいかもしれませんね。

専門ではありませんので参考までに。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/01/22 18:01

(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です。
    • good
    • 0

ANO.2補足です。


getenv("REQUEST_METHOD");等の環境変数が取得できなければ、
それは、CGIとして(WEBブラウザから)起動されていないので、
エラーとすることになります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/01/22 18:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!