时间: 2021-07-31 作者:daque
以次是我进修msdn中的作品。归纳出符合在c++builder下创造webserver的例子:个中运用adsi的少许接口,提防要将activeds.lib增添入工程,还要包括以次几个儿文献。比拟大略,蓄意能举一反三。file://---------------------------------------------------------------------------#include <vcl.h>#pragma hdrstop#include "unit1.h"file://---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"#include "iads.h"#include "adssts.h"#include "adshlp.h"tform1 *form1;__fastcall tform1::tform1(tcomponent* owner) : tform(owner){}file://几个参数:ip:ip地方字符串,domain:域名(www.youname.com),diskpath:假造目次路途(c:\wwwroot)bool createwebserver(string ip,string domain,string diskpath){iadscontainer *pcont=null;iads* pads=null;iads* pvrads=null;iadsserviceoperations *psrvop;idispatch *pdisp = null;idispatch *pvrdisp = null;ansistring wnumer=inttostr(random(1000)); //取一个随机数创造站点string newbindings=ip+":80:"+domain;/* 赢得webserver */ if(adsgetobject(l"iis://localhost/w3svc",iid_iadscontainer,(void**)&pcont)==s_ok){ //创造站点 if(pcont->create(l"iiswebserver",(wchar_t*)widestring(wnumer),&pdisp)==s_ok) { pdisp->queryinterface(iid_iads, (void**)&pads); pdisp->queryinterface(iid_iadsserviceoperations, (void**)&psrvop); pads->put(l"serversize",variant(int(1))); pads->put(l"servercomment",variant(string("xiwei")));//效劳器解释,没太多用途,xiwei我的名字 pads->put(l"serverbindings",variant(string(newbindings))); pads->setinfo(); file://创造主目次 pcont->getobject(l"iiswebserver",(wchar_t*)widestring(wnumer),&pdisp);//获得方才创造地网站 if(pdisp->queryinterface(iid_iadscontainer,(void**)&pcont)==s_ok) { if(pcont->create(l"iiswebvirtualdir",l"root",&pvrdisp)==s_ok) { pvrdisp->queryinterface(iid_iads, (void**)&pvrads); pvrads->put(l"accessread",variant(bool("true"))); pvrads->put(l"accesswrite",variant(bool("true"))); pvrads->put(l"accessscript",variant(bool("true"))); pvrads->put(l"enabledirbrowsing",variant(bool("true"))); pvrads->put(l"path",variant(string(diskpath))); pvrads->put(l"approot",variant(string(diskpath))); pvrads->setinfo(); pvrads->release(); pads->release(); pcont->release(); } file://启用兴建的webserver psrvop->start(); psrvop->release(); } }}}void __fastcall tform1::button2click(tobject *sender){createwebserver(edit1->text,"www.cccaaa.com",edit2->text);}file://---------------------------------------------------------------------------之上实质缺乏缺点处置,诸如ip地方已被占用等,我觉得本领这货色用不着顽固,没等生本钱呢,仍旧贬值了。嘿嘿,蓄意诸位赐与教正!我的email:proton@yeah.net