C++Builder使用ADSI创建web站点

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

C++Builder使用ADSI创建web站点

以下是我学习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

C++Builder 建立自己的 Web 浏览器  ---- 用够了IE和NETCAPE的朋友,有没有想过也编制一个自己的浏览器呢?用C++BUILDE使得你能够方便高效的创建自己的INTERNET程序.由于C++BUILDER的基本语言是C++,所以它几乎可以做任何事情,通过C++BUILDER的组件设置,你可以象其他应用程序一样建立INTERNET应用,意味着你可以扩展这些组件来增强他们的功能,如果需要的话,它也可以处理低水平的API细节 阅读详情

相关推荐

C++BUILDER建立自己的WEB浏览器

用够了IE和NETCAPE的朋友,有没有想过也编制一个自己的浏览器呢?用C++BUILDE使得你能够方便高效的创建自己的INTERNET程序.由于C++BUILDER的基本语言是C++,所以它几乎可以做任何事情,通过C++BUILDER的组件设置,你可以象其他应用程序一样建立INTERNET应用,意味着你可以扩展这些组件来增强他们的功能,如果需要的话,它也可以处理低水平的API细节

shiningstar的专栏 2181

基于C++ Builder的建立WEB浏览器的方法.rar_C++ Builder_c++builder web_web bui

基于C++ Builder的 建立WEB浏览器的方法

教你用HBuilderX免费搭建一个网站

如果你有vue的基础,那么HBuilderx工具将会是你更好的选择,他可以快速帮助你搭建网站,即使你只是一个人,利用DCloud你可以使用阿里云免费但受限的服务器资源,后续也可以花费资金升级服务器。而且不需要你学会复杂的数据库操作语句,是用官方提供的api就可以方便的对数据库进行操作,前后端对接也有提供的api方便传输数据,同时还可以帮你托管前端网页,即使你没有域名也可以进行发布。如果你对html/js/vue都不怎么了解,可以先去学习html、js、css等网页所需的基础语言。

MoZhaoyun的博客 6922

C++Builder开发Web应用程序

C++Builder开发Web应用程序!!!

在一个c++应用程序中使用ADSI配置IIS

窗户ADSI类IADsIADsContainerIADsIADsContainer和IADsContainerIADsIADsContainer可以用来获取,集合,枚举,刷新,移动,复制IIS性质和节点,无需包括IIS ADSI提供者接口。 IADsIADsContainer用来描述层次结构的任意对象,如IIS元素中的一个节点。IADsContainer是用来描述对象的容器,如IIS元素中结点的子

踏雪无痕 2901

c++ builder 编写web services容易遇到的小问题

由于项目需要,要编写webservices应用,网上这方面的资料不是太多。现把我写程序时候遇到的问题粗略记录如下:  第一步,在已有项目中引入webservices:       在C++ builder 菜单中选择 File-》New-》Other-》打开New Items选中WebServices页中的 WSDL Importer,打开WSDL Import Wizar

zzbinfo的专栏 2394

C++Builder使用ADSI创建web站点 (转)

C++Builder使用ADSI创建web站点 (转)C++Builder使用ADSI创建web站点 以下是我学习MSDN中的文章。总结出适合在C++Builder创建WebServer的例子:其中使用ADSI的一些接口,注...

cizn2013的博客 167

C++ Builder电子商务网站开发实战

Embarcadero C++ Builder是Embarcadero Technologies开发的一个集成开发环境(IDE),用于创建C++应用程序。自1997年首次发布以来,C++ Builder已经成为专业开发者的首选工具之一。经历了多次更新和升级,C++ Builder引入了跨平台开发能力,支持Linux,提供了更多的组件库和可视化工具,极大地简化了复杂应用程序的开发流程。

weixin_42593701的博客 507

C++初级项目webserver项目流程介绍(2)

C++webserver项目是自己在学完网络编程后根据网课的内容做的一个初级的网络编程项目。这个项目的效果是可以在浏览器通过输入网络IP地址和端口,然后打开对应的文件目录效果如下:也可以打开文件夹后点击目录,打开到对应的文件夹中去。这个就是简单的webserver功能,后期自己也可以修改代码实现更多可能性的玩法,比如做一个简单的前端交互式的界面。

莫浅子的博客 3991

ADSI接口获取AD域服务器账户列表[VC++]

之前用ldap_open API系列,在bind的时候老是提示无效认证,最后msdn还找到了一种COM接口获取AD域控服务器用户列表的方法,代码我在例子的基础上修改了下,测试通过,能获取到: // ldapsearch.cpp : Defines the entry point for the console application. // #include "stdafx.h" #incl

hurryboylqs的专栏 5882

查询活动目录计算机网络地址,域内活动目录信息的获取

本文将要以获取活动目录中所有用户、所有计算机和所有组为例,介绍常用的信息获取方法这次环境中我们得到了czf@zhong.czf pass:pass!@#4zhong.czf域内的普通用户 和密码也获取到了pp.zhong.czf/ppo p:pass!@#4子域的一个用户和密码0x01简介本文将要介绍以下内容:域外获取活动目录信息的方法域内获取活动目录信息的方法使用C++调用ADSI接口获取信息的...

weixin_35098081的博客 657

AD域对接C++

ADSI接口获取AD域内的信息 通过COM接口递归获取所有指定OU下面的所有信息:name,mail等, The core code is as follows . HRESULT hr; IADsContainer *pContainer = NULL; IEnumVARIANTPtr pEnum = NULL; int pos = -1; COleVariant varChild; IADs *pADs1 = NULL; CString strName, strDisplayName, s

lx0307的博客 1002

AD 和 ADSI 入门知识

转自http://www.why100000.com/_articles/show_a_article.asp?autoid=76&tab=tabWindows    AD简介    Active Directory(以下简称AD)可以认为是一个大的层次结构数据库,集中存储的内容必须遵循AD当前所定义的Schema。我觉得AD中最重要的内容就是Schema,然后是ADSI。    Sc

cnhome的专栏 2463
上一篇: 用C++Builder修改系统菜单
下一篇: "Weblogic 连接池 + Oracle + Servlet" 的无状态SessionBean 全攻略
Pasp
博客等级 码龄26年 2粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值