AIで普通の動画を3D動画に変換する
Miku-nical「みくにかる」〜Program館〜
Miku-nical「みくにかる」
Miku-nical「みくにかる」〜Program館
Miku-nical「みくにかる」
=SiteMenu=

図書紹介
-Books-

OSの話
-Windows/Linux-
プログラム
-Programming-
壁紙集
-Wall Paper.-
= プログラムの素「C++Builder編」=

KnowHow集などとだいそれたものではありません
自分がプログラムをする上で得た知識などをまとめておこうと思っています

002.CGIの作成について

CGIをC++Builderで作成しましたので、その時の経験から
尚、ここに書いてあるのは実体験をもとにしていますので、間違いなども含まれているかもしれません

作成開始

C++Builderではメニューより「新規作成」で表示される「Webサーバーアプリケーション」を選択する事でひな形を作成してくれます
作成形式として、「ISAPI/NSAPI DLL」「CGI実行形式」「Win-CGI実行形式」から選択できますが、ここでは「CGI実行形式」について取り上げます
「CGI実行形式」を選択すると、WebModuleが作成されます

追加

「プロパティ」の「Action」を選択すると、「コレクションエディタダイアログボックス」が表示されます
このダイアログでCGIのアクションを定義します
「追加」をクリックすると、新しいコレクションが作成されます

プロパティの設定

新規に作成したコレクションのプロパティを設定します
新規に作成するCGIに単一の機能を持たせるのであれば、「Default」プロパティを「True」としておくとよいでしょう。このCGIが呼ばれた時に、これから作成する内容が処理される事になります
他、「MethodType」では、HTTP 要求メッセージの型を指定できます
これも、「mtAny」を選択しておくと、特に意識する必要はありません(かなり、いい加減ですが、飽く迄も簡単な作り方の説明という事で...)

処理の作成

今、作成したコレクションのイベント「OnAction」中に処理を書きます
void __fastcall TWebModule1::WebModule1WebActionItem1Action(
TObject *Sender, TWebRequest *Request, TWebResponse *Response,
bool &Handled)
{
特に名前を変更していないと、上記のような関数になります
これまた見慣れないものが引数に使われています

「TWebRequest」と「TWebResponse」

この二つのクラスを使うと、CGIへの引数の受け渡し及び、HTTP応答メッセージの作成が比較的容易に出来ます
「TWebRequest」はCGIへ渡される値、「TWebResponse」は応答メッセージの値を格納していると思って下さい
この、
「TWebRequest->QueryFields->Values[名前]」
によって、「Name=Value」形式で与えられているCGI引数のValueを取得する事が出来ます
また、
「TWebResponse->Content」
に文字列を格納する事で、CGIの返す値を設定する事が出来ます
他にも、「TWebResponse->ContentType」を変更する事で、HTTP応答メッセージの種別を変更できるなど、難しい事を考えなくてもCGIの作成が可能となっています
特に難しいものでなければ、取敢えずは引数の値を取得してその結果を返す程度であれば、作成出来ると思います

尚、ここに書かれている方法を実際に行っての問題については一切関知しませんので、各自の責任にて行って下さい
ご意見ご感想はこちらまで <mikunical@mbp.nifty.com>
--