Visual C++/MFC专题讲座(1.3.2)

王朝vc·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

1.3 利用ISAPI开发CGI程序

一个最简单的ISAPI程序至少包含了一个由CHttpServer类所派生的新类,并且在该类中进行了基本的映射,重载了BOOL GetExtensionVersion(HSE_VERSION_INFO* pVer)函数和提供了形式如void Default(CHttpServerContext* pCtxt)的成员函数。幸运的是向导程序已经为我们做好了这一切并创建了最基本的代码。

Default函数用于处理没有带参数首先我们修改Default函数中的代码,首先我们改写其中的相关代码成为如下:

void CTestisaExtension::Default(CHttpServerContext* pCtxt)

{

//Print the <HTML> <BODY> tags.

StartContent(pCtxt);

//Print the title.

WriteTitle(pCtxt);

*pCtxt << _T("<p>演示</p>");

*pCtxt << _T("<p>目前是Default成员函数其作用</p>");

//Print </HTML> </BODY> tags.

EndContent(pCtxt);

}

然后用以下方式调用:http://.../cgi-bin/test.dll?Default或http://.../cgi-bin/test.dll?。你就会看到输出的HTML页面了。

<FORM ACTION="test.dll?Add" METHOD=POST>

<INPUT NAME="name">

<INPUT NAME="id">

<INPUT TYPE=SUBMIT>

</FORM>

上面表单要求用户输入了用户名和ID号,所以传送的数据形式形式应该如同:http://.../test.dll?Add&name=xxx&id=yyy,我们可以通过处理命令映射宏来指明处理命令的函数,然后通过参数映射宏对数据进行分解,分解后的数据将会存放入指定的变量。使用方法为:

ON_PARSE_COMMAND(Add, CTestExtension, ITS_PSTR ITS_I4)

ON_PARSE_COMMAND_PARAMS("name id")

ON_PARSE_COMMAND宏中需要指明函数名,类名和参数类型列表,ON_PARSE_COMMAND_PARAMS宏中需要根据前一个宏中所列出的参数列表来指明表单中的变量名称列表。最后一步就是定义一个名称与请求URL中?后命令名称相同的成员函数,参数的设置要与ON_PARSE_COMMAND宏中的参数列表定义相符合,在这个例子中为:

void CTestExtension::Add(CHttpServerContext* pCtxt,LPTSTR pszName,int iID)。参数类型列表中可以使用下面的类型后面为该类型的说明:

ITS_EMPTY 无数据

ITS_PSTR 字符串LPCSTR

ITS_I2 short

ITS_I4 long

ITS_R4 float

ITS_R8 double

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航