• ベストアンサー

C++とWindowsでCGIです。

http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/showtime.html のサンプルソースをコンパイルしてEXEファイルを作成しました。 VisualStudio.NET 2003 WindowsXP Pro Win32コンソールアプリケーションで拡張子.ccファイルをコンパイルしました。 CGIだとEXEファイルをHTML表示できるらしいのですが、 よくわかりません。 Windows環境・VisualC++で手軽にCGIファイルを実行できる方法を教えてください。 EXEファイルの拡張子をCGIに変えても、できませんでした。 あまりCGIのことはよくわからないのですが、C++でできるならやってみたいと思いました。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hssh
  • ベストアンサー率24% (12/49)
回答No.3

#1 hsshです 出来てしまえば、簡単なことなのでがんばってください  > thulalaさん プログラミング経験はおありのようなので、そちらは問題ないとして、 まずは、ローカル環境でのプログラムの動作確認からですね 手順 1)コンピュータにwebサーバーを入れる 2)CGIが実行できるようにwebサーバーを設定する 3)webブラウザからCGIプログラムの動作確認 項目1)については、httpd.exeを入れられたようですが、WinXP pro ならIISが標準であるので こちらを使われてはどうでしょうか。 動かすだけならIISは簡単です(実務には問題ありありですけどね) 項目2)では、作成したexeファイルをIISの管理下のscriptsフォルダへ置くだけです。 設定はインターネット サービス マネージャでできます 項目3)は、webブラウザにて URL欄に http://127.0.0.1/scripts/xxx.exe といれるだけです。(プログラム名 xxx.exeの場合) これで、お作りのPGはネットワーク越しのwebサーバーでもCGIプログラムとして動くはずです なお、インストしたままでのIISの動作中は、セキュリティ上問題があるので、ネットワークケーブルは外しておいたほうがよいでしょう。PGの動作確認ができたらIISのセキュリティを強化するか、別のwebサーバーの導入をされたほうがよいと思います

thulala
質問者

お礼

コントロールパネル→管理ツール→インターネット インフォメーション サービス ローカルコンピュータ→WEBサイト→規定のWEBサイト→_vti_script にEXEファイルをコピーし、 規定のWEBサイトのプロパティでホームディレクトリをちょこちょこっと設定を変えましたら無事にできにました。 mttk1238さん、hsshさん、ありがとうございました。 C++でこんなことができるのかと感動しています。 CGIの作成については、練習程度なのでネットワークについては特に現在は考えていません。 商業サイトではPerlはあってもC++はないようです。

その他の回答 (2)

  • mttk1238
  • ベストアンサー率15% (9/59)
回答No.2

こんにちわ。 下記のサイトを参考にしてみてはいかがでしょうか? 大変わかりやすいですよ。

参考URL:
http://www2k.biglobe.ne.jp/~motoi/cdecgi.html
thulala
質問者

お礼

回答ありがとうございました。 時間が遅れましたが、 参考URLのほうも参考にさせていただきます。

thulala
質問者

補足

WEBサーバーが構築できないと無理でしょうか? 簡単にできるものはないでしょうか? 無理なようでしたらあきらめます。

  • hssh
  • ベストアンサー率24% (12/49)
回答No.1

webサーバーの設定はしていますか

thulala
質問者

お礼

http://oshiete1.goo.ne.jp/kotaeru.php3?q=977565 こちらのほうでも投稿しました。 よろしくお願いします。

thulala
質問者

補足

ネットワークなどの設定をしないと確認することはできないですか? 当方ネットワークのことはまったくわかりません。 環境は、 デスクトップPC一台 ネットワーク接続穴2個(1個はインターネット) ノートPC1台 FDなし。 共にwindowsXPです。 青い余ったケーブルがあります。(クロスケーブル?) これで簡単にネットワークできますか? webサーバーの設定はできますか? ベストな接続方法はありますか? (セキュリティに強い等) 足りない情報は補記しますので是非手順をお教えください。

関連するQ&A

  • C言語で作ったプログラムをCGIで動かすには

    C言語で作ったプログラムをCGIで動かすにはどうすればいいのでしょうか? サーバ側になにをアップし、ブラウザ側で何を呼び出せばいいのかわかりません。 EXEファイルの拡張子をcgiにしても ダウンロードされるだけだったし(当たり前ですか?)。 ちなみにサーバは会社のサーバを使っていて、CGIも使えるはずです。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • Cで作ったexeファイルをCGIとして動かしたい

     以前「自宅のWindows機をサーバー代わりにしてCGIを動かす方法(No.65520参照)」を教えてもらい、Perlで書いたCGIのテストなどに使用しています。  今度はCで作ったexeファイルをCGIとして実行しようとしたのですが、アドレスバーからそのファイルを指定すると、ダウンロードしようとしてしまいます。 (当たり前といえば当たり前なのですが・・・)  ムダと思いつつ、拡張子をCGIにしてみたりしたのですが、やっぱりダメでした。  AnHTTPdの設定だとは思うのですが、どこをいじればよいのか分かりません。  どのようにすれば動くのか教えてください。

    • ベストアンサー
    • CGI
  • C++Builderで実行ファイルが作成されない

     C++Builder6で本に載っているHelloWorldサンプルをビルドしたところ、真っ白なタブが出るだけで何も出力されません。Bin下のbcc32でコマンドラインからコンパイルしてみると、objファイルとtdsファイルが出来ていますが、exeファイルは作成されていませんでした。  どうやれば簡単なコンソールアプリケーションをビルドできるのでしょうか?

  • WindowsXpProでC言語でCGI

    自宅のXp Proをサーバーにして,Apache2.2やメールサーバを動作させています。昨日,Apacheでssiやcgiを実行可能にして,次のような簡単なプログラムをコンパイルして,hello.exeを作って,試してみました。 #include <stdio.h> #include <conio.h> int main() { printf("Hello"); /*getch();*/ } htmlファイルは, <!--#exec cgi="counter.exe" --> <!--#include file="count.dat" --> <!--#exec cgi="hello.exe" --> としています。実は,counter.exeは自作カウンターなのですが,標準出力が表示されず,しかたなく,#includeでカウンタファイルの値を表示させています。hello.exeも同様にファイルに書き出して,includeすれば大丈夫なのでしょうが,いろいろな資料やhpを見る限り,上記ソースのように標準出力でできるはずだと思うのです・・・。 Windowsをサーバにした場合は,標準出力は表示されないのでしょうか? どなたか,アドバイスいただけないでしょうか。

    • ベストアンサー
    • CGI
  • Cの初歩の初歩について

    現在、「Visual studio.Net2003」を使っています。 まだはじめて日が浅くBasicの方もやっていたのですがCの開発環境を作ろうとしたのですが作れません。 過去の履歴を読んで見たのですがまだ用語などよくわからず同じような質問があれば大変申し訳ないのですが、 VisualC++プロジェクト     ↓ win332プロジェクト     ↓ (アプリケーションの設定) コンソールアプリケーション     ↓ 空のプロジェクト ときて、「新しい項目の追加」で VisualC++ ↓ C++ファイル(cpp) が表示されません。 ファイル名の拡張子を.cにしてやってみましたが今度は デバッグを開始できません。 「(プロジェクトが入っているフォルダ)***.exeを開けません。 指定されたファイルが見つかりません。」 となってしまいます。 PCを変えて初めてCをやろうと思ったらこうなってしまいました。Basicの方は問題ありません。 どうすればCの開発環境はできるのでしょうか? OSはwindows2000Pro(SP4すべてアップデート済みです)。 長文と読みにくい文、失礼しました。 よろしくお願いします。

  • サーバーでCGIを動作させるには?

    自宅サーバーでCGIを動作させたいのですが、うまく動作しません。 ○サーバー環境 OS:Windows Server 2003 Web Edition SP1 CPU:Intel Xeon 2.8GHz メモリ:1GB RAM ○現在の状況 htmlは、問題なく動作してます。 cgiを実行すると、エラー404となります。 ○CGI動作にあたって行った作業 (1)ASPの実行を許可しました (2)Perl構成にあたり、ActiveState社のActivePerl-5.8.820-MSWin32-x86-274739.msiをダウンロードし、Dフォルダにインストールしました。 (3)IISマネージャで、「Webサービス拡張」→「Perl CGI Extension」を許可しました。 (4)IISマネージャで、「Webサービス拡張」→「すべての不明なCGI拡張」を許可しました。 (5)実行アクセス権を設定するために、実行するCGIを格納するディレクトリの「実行アクセス許可」を「スクリプトおよび実行可能なファイル」としました。 (6)CGI拡張子と実行可能ファイルを関連付けるために、実行するCGIを格納するディレクトリの「アプリケーションの設定」→「構成」→「アプリケーションの拡張子」→「追加」で、 実行可能ファイル「D\Perl\bin\perl.exe"%s"%s」 拡張子「.cgi」としました。 ○CGIが動作するか確認するために、サンプルCGIを作成し、上記設定を行ったディレクトリ以下に配置しました。 ○結果 クライアントで、http://サーバー名/ディレクトリ名/ファイル名 と入力すると、エラー404 ページが見つかりません。と出ます。 間違った操作や、考えられる間違い箇所がありましたら、指摘ください。

  • APACHEのCGI-BINでC++のEXE実行

    APACHEをインストールしてCGI-BINに以下のプログラム #include <stdio.h> int main(){ printf("test"); return 0; } をコンパイルしたEXEファイルを置いてブラウザで参照したところInternal Server Errorでページが表示できません。testと表示したかったのですが・・・どうすればいいでしょうか?

  • IIS6.0でcgiが認識できない

    IIS6.0でcgiが認識できないのですが 以下の構成でどうなのでしょうか? 仮想パスは認識できているようなので、 http://*.*.*.*/cgi-bin/index.html は表示できます。 ■環境:win2k3/ActivePerl5.8.4/IIS6.0 #################################### アプリケーションの構成マッピング ------------------------------------ ●ISAPI拡張をキャッシュする(checked) ●アプリケーションの拡張子 .pl D:\user\local\bin\perl.exe GET,POST .cgi D:\user\local\bin\perl.exe GET,POST ※スクリプトエンジン(checked) ※ファイルの存在を確認する(checked) #################################### perlの実行ファイルは,ググった結果、以下のものも試してみましたが だめでした。 perlIS.dll perl5.8.4.exe perl.exe "%s" %s どうぞお願いします。

  • C言語でプログラムを作る課題があたえられました

    プログラムは作ったのですが、それを書いた拡張子『.c』のソースファイルとコンパイル後に作成された拡張子『.exe』のファイルを提出することになっています。『.c』のファイルとは『C source』に書かれているプログラムしょうか。また、『.exe』のファイルとはアプリケーションに書かれているものでしょうか、それともobject fileに書かれているものでしょうか。35年前にfortranは勉強して少し、プログラムを作った経験はあるのですが、今では言葉の意味が理解できません。恐れ入りますが詳しく教えてください。

  • VisualC++ でstdinにファイルを指定する方法

    VisualC++のコンソールアプリを作成する機能で、C++の勉強をしています。 ところで、VisualC++で、標準入力にファイルを指定する方法はどうすればいいのでしょうか? Unixでいうところの ./a.out <sample.txt とやりたいのです。 よろしくお願いいたします。