100分求救 COM编程

cutepine 2003-08-25 12:05:02
我有一个COM组件,DLL形式的,通过Regsvr32,我已经注册了.

以下是部分调试代码:

.......
const
c1: TGUID='{70BE0FA9-6BA1-49C3-A7ED-E18D2A491918}';
var
v1: variant;
begin
v1 := CreateComObject(c1); // 1
v1.IsOnline; // 2
.........

end;

当执行到第二句的时候,弹出报错信息:Variant not reference Automation ...

IsOnline,是这个COM组件提供的方法.

这是为何,甚急!!!


...全文
67 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cutepine 2003-08-26
  • 打赏
  • 举报
回复
不好意思,刚才我说错了。其实是在import ActiveX Control 时,无任何反应,没有出现在列表中;在Import Type Library时,出现报错信息:加载类型库/DLL时出错。接口文件也没有创建成功。

TechnoFantasy,
如何可以的话,希望能够和你在线交流,我的QQ:2719098. 谢谢!

TechnoFantasy 2003-08-26
  • 打赏
  • 举报
回复
你的组件如果注册了的话应该在列表中出现的,你先不要管它,主要看接口文件是否创建成功了。
cutepine 2003-08-26
  • 打赏
  • 举报
回复
我已用过,但是组件没有在窗口列表中出现呀,无法选择;

我也试过,点击add按钮直接选择组件对应的dll文件,但是选择后,也没有出现在列表中,也无报错信息出现,很是奇怪。
TechnoFantasy 2003-08-26
  • 打赏
  • 举报
回复
选择菜单 project | import type library,然后在弹出窗口列表中选择已经注册的组件或者点击add按钮直接选择组件对应的dll文件。然后点击 create unit 按钮,就会在delphi的import目录下面生成接口定义文件,将文件在工程中引用就可以了。
cutepine 2003-08-26
  • 打赏
  • 举报
回复
请问,如何导入COM组件,以便生成接口定义文件?
TechnoFantasy 2003-08-25
  • 打赏
  • 举报
回复
http://www.delphiok.com/article/0023.htm
http://www.csdn.net/develop/article/19/19195.shtm
TechnoFantasy 2003-08-25
  • 打赏
  • 举报
回复
你需要导入你的COM组件,生成接口定义的文件,然后在Delphi中引用,并且定义接口,然后调用CreateComObject方法创建组件并返回该组件的接口。
cutepine 2003-08-25
  • 打赏
  • 举报
回复
那如何对接口显式调用
TechnoFantasy 2003-08-25
  • 打赏
  • 举报
回复
你创建的COM组件可能不是一个自动化组件,没有实现IDispatch接口,所以无法后期绑定(Later Binding),只能通过接口显式的调用。
cutepine 2003-08-25
  • 打赏
  • 举报
回复
是否建立对象的方法错误呢
pankun 2003-08-25
  • 打赏
  • 举报
回复
应是你建立COM对象时发生问题了.
cutepine 2003-08-25
  • 打赏
  • 举报
回复
clsid是没错的,

至于IsOnline是无参数函数,也应该是没错的
lxpbuaa 2003-08-25
  • 打赏
  • 举报
回复
1、检查c1是否对应了正确的COM组件。
2、检查COM组件中IsOnline的代码,看它的正确执行是否要依赖于一些条件。

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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