C++によるWebBotコンポーネント作成


● C++言語によるWebBotコンポーネントの作成

 C++言語によりWebBotを作成するのは、UNIX上でCGIをC言語を使用して作成するのと同様な形で行いますが、ずいぶん簡単になりました。Windows用に生成することを前提にして話を進めますが、基本としてUNIX版も同じです。

 C++言語で作成するWebBotはWindowsのDLL(Dynamic Link Library)の形で生成される実行プログラムで、CPUのコードに依存しています。コンパイルするときの注意はフラットモデルのDLLということと、#include "webbot.h" とヘッダーをインクルードしておき、コンパイル&リンクすることです。

 また、Visual C++6.0(SP3)で試したところMFCのクラスの利用も可能だとわかりましたので、サンプルを生成してみました。

 

以下にサンプルコードの中心部分のみを掲載します。ソースコード全体のダウンロードはこちら

#include "..\webbot.h"

BeginWebBotExpand(AfxCurDateTime,ret,bot,cgi,form)
{
    COleDateTime c = ::COleDateTime::GetCurrentTime();
    char buf[256];
    wsprintf(buf,"\n<b>Afx Test Component %.4d/%.2d/%.2d %.2d:%.2d:%.2d</b>",
        c.GetYear(),c.GetMonth(),c.GetDay(),
        c.GetHour(),c.GetMinute(),c.GetSecond());
ret.Append(buf);
}
EndWebBotExpand

● この例では、COleDateTimeクラスを使用して、コンポーネントが実行されたときの時間を修得してHTMLテキストとして表示するようにしています。

このコンポーネントの設定用のBTL・INFファイルの中身を掲載しておきます。

<!--
File: afxtest.btl
DLL Custom WebBot Component Template Language
-->

<!--WEBBOT BOT=AfxCurDateTime
PREVIEW="&lt;B&gt;Current Time;/B&gt;"
DESCR="AfxCurDateTime Test Components"
HELP="Use AFX COleDateTime class in this bot"
-->

; File: AFXTEST.inf
; DLL Custom WebBot Component Information File
;

[info]
list=AfxCurDateTime
clientarchitectures=All
vendor=kitaro
contact=http://oprnlab.ring.gr.jp/kitaro/
version=0.1
serverbinding=dll
servermodule=AFXTEST.dll
clientbinding=BTL
clientmodule=AFXTEST.btl

[AfxCurDateTime]
name=Afx COleDateTime Current TIme
description=DLL GetCurrent Date Time WebBot Component
type=insert

Copyright (c) Kitaro 1999