● 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="<B>Current Time;/B>"
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