createoleobject函数不可以在dll里调用?(来者有分)

cougar87 2002-06-19 02:15:50
我创建了一个dll,这个dll只有两个函数 setiis(webname:pchar;vpath:pchar),和delweb(webname:pcahr).不过当主程序调用这中间任一个函数的时候都会报错
eolesyserror with message "标记没有引用存储".
具体情况是:
1 系统环境 windows profession 2000,delphi6
2 如果把这两个函数代码原本拷到应用程序里直接使用则没有问题,而且运行正常
3 两个函数的内容为

function setiis(webname:pchar;vpath:pchar):boolean;stdcall;
var
WebSite,webs, WebServer, WebRoot, VDir: oleVariant;
path,s:pchar;
begin
s:=pchar(webname);
path:=pchar(vpath);
result:=false;
WebSite:=CreateOleObject('IISNamespace'); //-------->运行到这里就出 现 "标记没有引用存储"的错误
WebS:=WebSite.GetObject('IIsWebService','localhost/w3svc');
WebServer:=WebS.GetObject('IIsWebServer','1');
WebRoot:=WebServer.GetObject('IIsWebVirtualDir','Root');
VDir:=WebRoot.Create('IIsWebVirtualDir',string(s));
VDir.AccessRead:= True;
vdir.accesswrite:=true;
VDir.Path:=string(path);
VDir.SetInfo;
result:=true;
end;

=======================================================


function delweb(webname:pchar):boolean;stdcall;
var
existvdir,WebSite,webs, WebServer, WebRoot, VDir: oleVariant;
s:string;
begin
s:=string(webname);
result:=false;
WebSite:=CreateOleObject('IISNamespace');
WebS:=WebSite.GetObject('IIsWebService','localhost/w3svc');
WebServer:=WebS.GetObject('IIsWebServer','1');
WebRoot:=WebServer.GetObject('IIsWebVirtualDir','Root');
try
WebRoot.Delete('IIsWebVirtualDir', s);
result:=true;
finally
begin
end;
end;
end;
4 dll的设置文件:
library createiis;
uses
SysUtils,
Activex,
ComObj,
Classes,
fn_cls in 'fn_cls.pas';
exports
delweb,setiis;
{$R *.res}
begin
end.

5.fn_cls.pas 的文件
unit fn_cls;

interface
uses
comobj,windows;

function setiis(webname:pchar;vpath:pchar):boolean;stdcall;
function delweb(webname:pchar):boolean;stdcall;

implementation
{-这里就是上面所说两个函数的实现-}
.
.
.

我不明白为什么会这样.难道dll里不能调用createoleobject这个函数,可是我看过一下帖子,也这么用阿(虽然也有出错,但是不是我碰到的这个问题.)
...全文
122 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cougar87 2002-07-11
  • 打赏
  • 举报
回复
看来没人来回答了。我结贴了。
cougar87 2002-06-22
  • 打赏
  • 举报
回复
IIs是肯定装了.
别的地方我也不知道啊.我觉得很奇怪..有关这个dll的源代码都在这里了.
我机器装了.net会不会有影响?(自从装了.net我得iis只有设定了最低权限,才能浏览网页..这让我很迷惑,呵呵...)
瑞星是不是也有影响?(我都晕死了..曾经有一段时间只要开着瑞星我得delphi6就不能用...........只有关了瑞星的实时监控才可以用delphi,,,唉
晕..)

flinming 2002-06-19
  • 打赏
  • 举报
回复
调用应该没有问题吧!!是不是其他的地方代码错误!
dreamfan 2002-06-19
  • 打赏
  • 举报
回复
up
zdwaiter 2002-06-19
  • 打赏
  • 举报
回复
johnson 好厉害阿~~~~~
johnsonrao 2002-06-19
  • 打赏
  • 举报
回复
不会你没装 IIS 就引用吧?
cougar87 2002-06-19
  • 打赏
  • 举报
回复
分不够可以再加阿..我另开贴来发分.我帮我解决问题,我给他200分
cougar87 2002-06-19
  • 打赏
  • 举报
回复
但是可不可以告诉我为什么出错?
johnsonrao 2002-06-19
  • 打赏
  • 举报
回复
我有做过,肯定可以!
johnsonrao 2002-06-19
  • 打赏
  • 举报
回复
我有做过,肯定可以!

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧