S
stargazer
Unregistered / Unconfirmed
GUEST, unregistred user!
小弟最近对COM+比较感兴趣,于是动手写了一个演示性的例程。不料甫一起步就遇到了障碍。情况是酱子的:
按照书上所言,偶先建立一个ActiveX Library项目,然后加入一个Transcational Object,创建一个COM+组件。
分发时,偶没有使用菜单中的Install COM+ Object,而是将该动态库拷贝到另外一台Windows2000 Advance Server计算机下面,利用操作系统的“组件服务”安装这个COM+组件。
OK,然后偶开始写客户端。
uses了Tlb文件生成的.pas文件后,偶定义了一个指定接口类型的变量,在主窗体创建时调用CreateRemote方法远程激活COM+组建。
问题来了。该语句执行后,客户端弹出提示“Interface not supported”。
下面是我采取的一些步骤:
1,首先把客户端编译后放在和COM+组件同一台计算机上,运行。没有报错
2,降低COM+的安全配置,在其它计算机上调用,依然报告同样错误。
3,单步运行客户端代码,观察组件行为,从“组建服务”窗口中看到组件已经激活
4,单步跟踪客户端代码,发现CoCreateInstanceEx是成功的,就是接口转换时出错,这部分VCL代码是Borland用汇编写的,分析的结果是调用接口的QueryInterface时报错。
偶暂时黔驴技穷了,请各位高手看看。谢谢
按照书上所言,偶先建立一个ActiveX Library项目,然后加入一个Transcational Object,创建一个COM+组件。
分发时,偶没有使用菜单中的Install COM+ Object,而是将该动态库拷贝到另外一台Windows2000 Advance Server计算机下面,利用操作系统的“组件服务”安装这个COM+组件。
OK,然后偶开始写客户端。
uses了Tlb文件生成的.pas文件后,偶定义了一个指定接口类型的变量,在主窗体创建时调用CreateRemote方法远程激活COM+组建。
问题来了。该语句执行后,客户端弹出提示“Interface not supported”。
下面是我采取的一些步骤:
1,首先把客户端编译后放在和COM+组件同一台计算机上,运行。没有报错
2,降低COM+的安全配置,在其它计算机上调用,依然报告同样错误。
3,单步运行客户端代码,观察组件行为,从“组建服务”窗口中看到组件已经激活
4,单步跟踪客户端代码,发现CoCreateInstanceEx是成功的,就是接口转换时出错,这部分VCL代码是Borland用汇编写的,分析的结果是调用接口的QueryInterface时报错。
偶暂时黔驴技穷了,请各位高手看看。谢谢