• 締切済み

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

  • C言語について教えてください!

    C言語でプログラムを実行したときに合わせてブラウザ(指定したURL)が起動されるプログラムは可能ですか? 環境:ubuntu10.04 ブラウザ:firefox

  • WEBブラウザから指定したアプリケーションの実行

    ------------------------------ 開発/実行環境 ------------------------------ HOST OS:Windows7/XP(CLIENT OSも同環境) DEVELOP:XAMPP 1.8.0(Apache 2.4.2/MySQL 5.5.25a/PHP 5.4.4) BROWSER:Firefox 14.0.1(WEBブラウザでの実行) CLIENTS:Local Connent(ローカル環境下でホストへ接続) ------------------------------ 上記環境下でWEBブラウザ(Firefox)から指定(登録)した アプリケーションを実行する方法を教えてください。  例)PowerPoint 2003 + 指定ファイル    PowerPoint 2010 + 指定ファイル

  • プログラムからブラウザにJSを実行させる方法

    cやc++などタスクバーに表示されるプログラムから、起動中のブラウザにjavascriptコードを実行させる方法があれば教えてください それとブラウザ単体で動的にjavascriptを実行するには、 ・アドレスバーに打ち込む ・コンソール画面に打ち込む(IE7とかの場合F12押下して出てくるやつ 以外に方法があるのでしょうか? 回答よろしくお願いいたします。

  • Borland C++を利用しているのですが、簡単なプログラムが実行できません。

    Borland C++を利用しているのですが、簡単なプログラムが実行できません。 以下のようなプログラムをコンパイルして実行しようとしたのですが... #include <stdio.h> void main(void) { int i,j,k; i=1; j=2; k=i+j; printf( "k=%d,k); } Borland C++は、初めて使うのですが、C言語の勉強には使えないのでしょうか? もし使えるなら、どのようにすればよいのでしょうか?

  • C++でWEBブラウザを作成する

    Visual C++ Express 2010 でWEBブラウザを自作しようと思っているのですが、 ブラウザの要となるテキストバーを設置して、 そこにアドレスまたは日本語などの値を入力し、検索ボタンを押下して、 アドレスバーの下に設置したフォームに、 その検索結果を表示させるにはどうすればいいでしょうか? 宜しくお願いします。 まだ具体的な機能は付加していません(とりあえず必要と思うものを予め名前をつけている)が。。

  • Webブラウザーを起動する方法を教えてください!

    こんにちは、はじめまして! MFCを使っています。 ボタンやメニューをクリックしてURLを指定したWebブラウザー を起動するプログラムを作成しています。 WinExecやCreateProcessを使ってIexplore.exeは起動できると 思いますが、Netscapeを使うユーザーには適用できないと思います。 なんかいい方法があれば教えてください! 助かります。ありがとう。

  • Visual C++ 実行ファイルが作れない

    Visual C++ 2005でプログラムを打ち込み、ビルドはできるのですが実行できません。 実行をクリックすると「デバッグで使用する実行可能ファイル名を指定してください」と表示されます。Projectsフォルダの中を見ても実行ファイルはできていません。なぜなのでしょうか? そしてもう一つ、VCの分かりやすい操作説明をしているページがあれば教えていただけませんか?

  • 新しいブラウザを開く

    数ページにそれぞれある〔地図ボタン〕から地図にリンクさせようとしています。 1.〔地図ボタン〕クリックすると新しいブラウザが開き、MAP大(全体地図)が展開。 2.MAP大の中の〔駅名〕をクリックすると、 同じブラウザ内でMAP小a/b/c(それぞれの駅からの道順地図)が展開。 3.MAP小a/b/cそれぞれ内に〔戻る〕ボタンをつけ、同じブラウザ内でMAP大に戻る。 4.MAP自体を消す時は、MAP大の〔閉じる〕ボタンから1で開いた新しいブラウザを閉じる。ということがしたいのです。 ※地図は1ブラウザのみで表示し、その中で展開させたい。 今、MAP大の駅名をクリックするとさらに新しいブラウザが開き、 そこでさらにMAP小a/b/cが展開します。 大元の1MAP大もそれぞれMAP小a/b/cに変わっており、 〔戻る〕ボタンで2つともMAP大に戻りますが、新しいブラウザが開きっぱなしです。 ホットスポットツールで〔ターゲット〕を_blankにしたり_topにしたり試してみましたが混乱してしまいました。 良策をお教えください。

    • ベストアンサー
    • HTML
  • C言語を記述しましたが、実行する方法がわかりません

    softbank社の明解C言語入門編というテキストで プログラムのさわりを学ぼうと思い同書を購入しました。 書いてあるプログラムをそのとおり記述して実行し、覚えるという ものです。 一番はじめは /*   整数値15と37の和を表示する */ #include <stdio.h> int main(vid) { printf("%d", 15+37); /*整数値15と37の和を10進数で表示 */ return (0); } 上記を実行すると、実行結果 52 となるそうなのですが 上記プログラムをワードパッドに記述して、list0101.cとして 保存しました。 このあと、どのような作業で、実行結果が表示されるのかが わからないのです。テキストにも実行としか書いてありません。 ど初心者で恐縮ですが、検索したところマッチするアンサーが なかったため、質問させていただきます。 よろしくお願いいたします。

  • すべてのプログラムを、「管理者として実行」として実行する方法は?

    よろしくお願いします。 すべてのプログラムを、「管理者として実行」として実行したいと 思います。 ただ、毎回指定するのが面倒なので、全てのダブルクリックが 「管理者として実行」モードに設定する方法はありますか?

専門家に質問してみよう