使用Delphi5.x开发ASP组件读取网页源码出错:必须加载一个dll(200分)

  • 主题发起人 主题发起人 Thinboy
  • 开始时间 开始时间
T

Thinboy

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个ASP组件(TAspTest),为了读取网页的源码,使用了一个NMHTTP组件,
NMHTTP组件放在一个FORM上,这个Form.Visible=false ,
在AspTest.Excute方法上执行以下代码:
function TAspTest.excute: Integer;
begin
Response.Write('OK, I was Success..<br>');
Form1.NMHTTP.Get('www.xxx.com');
Response.Write(Form1.NMHTTP.Body);
end;

asp文件的代码是
<% Set DelphiASPObj = Server.CreateObject("PAspTest.AspTest")
v_Ret = DelphiASPObj.Excute
Set DelphiASPObj = nothing
Response.Write "<BR>" &amp
v_Ret
%>

当运行这个asp的时候, IE报告:
OK, I was Success..
错误 '8000ffff'
必须加载一个 dll。

/xxx.asp,行9

是不是在asp组件上不能加载form ?
我要达到开发一个asp组件读取某个网页源码,以作进一步分析,并且这个组件要在asp中调用

麻烦大家教教我!谢谢!

新年快乐!
 
再试用DataModule, 把Form去掉,把NMHTTP放在DataModule里,编译再执行,结果还是一样!
 
猜测:
Form1.NMHTTP.Get('www.xxx.com');
是否应该为:
Form1.NMHTTP.Get('http://www.xxx.com/');
 
补充一下:我这段代码在正常的Application中已经运行成功,
但是在Active Object中使用却不行

谢谢Pipi.的帮助,你提到的疑点不是问题。谢谢!
 
project属性那里在packages那里去掉 Build with run-time packages 的勾
菜单 project/rebuild 试试
 
组件在服务器中注册没有?
 
谢谢!

Pipi. : Build With Run-Time Packages本来就没有打勾的;

gdtkd :组件已经在服务器在注册了,否则,它就不会先输出"OK, I was Success.."这一行。

谢谢!
 
我不会,但帮你up一下。
 
Form1怕是有问题,你确定它已经被创建了吗
 
你要手工创建 Form 或者 DataModule
 
您的NMHTTP控件是放在那在一个datamodule中的吧,那你有没初始化datamodule??
如果你没有这样做,就会出这个错误了,
 
同意Activer的观点,在单独的Application中运行的话,在project option的Forms中有
Auto-Create的选择,可能你的Form1就在那里建立了实例了,因此运行没问题。
但在Auto-Object的project中,Form是不会自动建立的。调用时当然出错了。
解决办法是:
1、重载TASPTest的Create方法和Destroy方法。
TAspTest=Clasee(... ...)
public
constructor Create;
destructor Destroy
override;
...
consturctor TAspTest.Create;
begin
inherited Create;
Form1 := TForm1.Create(nil);
end;

destructor Destroy
override;
begin
Form1.Free;
inherited Destroy;
end;
2、在TAspTest所在单元的
initialization段加入
Form1 := TForm1.Create(nil);
加入段finalization
Form1.Free;
 
这样试试看

<% Set DelphiASPObj = Server.CreateObject("PAspTest.AspTest")
v_Ret = DelphiASPObj.Excute
Response.Write "<BR>" &amp
v_Ret
Set DelphiASPObj = nothing
%>
 
Thinboy

你有QQ或EMAIL没有呀?

我想问一下你的
"如何得到另一台机的打印输出数据?"这个问题
有答案了没有,
如果有,能把答案给我么?
(有什么要求请提.)
我找了很久了....
谢谢.

b_123@tom.com
qq:13823062
 
后退
顶部