新手提问:用Delphi编写ASP调用的COM组件(100分)

  • 主题发起人 主题发起人 Kelvin_zillion
  • 开始时间 开始时间
K

Kelvin_zillion

Unregistered / Unconfirmed
GUEST, unregistred user!
在Delphi6中,通过 New->ActiveX Library->COM Object创建的组件可以被
ASP或者VB调用吗?

另外,请大家给我讲讲New Items中ActiveX页COM Object,Automation Object,
Active Server Object,COM+ Event Object有什么不同,我现在感觉比较胡涂。

谢谢!
 
当然可以阿
 
我碰到的情况是这样的
New一个ActiveX Library的Project,取名DelphiCom
在DelphiCom中加入一个Com Object,取名Test1
再加入一个Automation Object,取名Test2
以上过程所有参数、选项均为默认值,没有加入其他任何东西
编译,注册后,在ASP中用这样的代码调用
<%
set obj=Server.CreateObject("DelphiCom.Test1")
%>
IIS报错
Server object, ASP 0177 (0x80004002)
No such interface supported

类似的代码调用DelphiCom.Test2就没问题
<%
set obj=Server.CreateObject("DelphiCom.Test2")
%>

如果不用ASP的Server对象,直接用下面的代码创建Delphi.Test1也是可以的
<%
set obj=CreateObject("DelphiCom.Test1")
%>

然后分别给ITest1、和ITest2加入一个Method,重新编译、注册,
把DelphiCom.Dll的两个组件加到Win2K的组件服务中,ITest2下的Method可以看到,
ITest1的Method看不到。

我第一次用Delphi写ActiveX组件,以前用过VB,有很多地方需要学习,请大家指教。



 
也许Asp 的对象必须实现IDispatch 接口吧,我以前作的时候没有注意这个问题
现在也不好说。COM 对象 是所有 实现 IUnknown 接口的组件,Automation 是实现
IDispatch 接口的 Com 组建,支持迟绑定。不知到对不对。见笑了
 
多人接受答案了。
 
后退
顶部