COM Interop 闹鬼

Giping 2005-11-17 01:45:11
通过使用 COM Interop 实用工具 (TlbImp.exe) 导入相关的 COM 类型成功地把VB6.0中最常用的串口控件引入到了C#工程中,编写串口程序方便了许多.
这次编写实时数据库系统PHD接口时,以同样的方法把 PHData.tlb 亦成功导入.
在new 一个具体的类实例时报错:(0x80040154) COM object with CLSIS XXXX IS either not valid or not registered.
显然是说COM组件没注册好,可是问题是
PHData已经注册成功(regsvr32) -- 由系统厂商提供的安装包完成.
从PHData导出的四个类,new 第一个时候并没有报错,测试代码连接服务器成功
new 其他三个皆报错
-----------------------------------------------
PHData.tlb导出类型列表:
CPHDataClass
CTagsClass
CTagClass
IPHDTagDefinitionClass
-----------------------------------------------
应用代码:
PHData.CPHDataClass m_PHData = new PHData.CPHDataClass();
m_PHData.HostName = "localhost";
m_PHData.Login("UserName","Password");
//####################
以下代码运行时出错
PHData.CTagsClass tags = new PHData.CTagsClass();
PHData.CTagClass tag = new PHData.CTagClass();
... ...
------------------------------------------------
第一个类CPHDataClass对应的COM (PHData.tlb)已经注册
其他的类也是从PHData.tlb导出的:
系统竟然没有注册? 如何注册?
还是TlbImp工具有问题? 还是需要什么特殊参数?
CPHDataClass的一个属性的类型是CTagsClass.而tlbimp将其改为Object类型.是否有关?

恳请对COM原理和.NET COM Interop 熟悉的大侠指点迷津.
...全文
168 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
我不懂电脑 2006-02-15
  • 打赏
  • 举报
回复
VB6.0中最常用的串口控件可以在工具箱里直接导入的呀
brucenan999 2006-02-15
  • 打赏
  • 举报
回复
regasm注册什么的呢?
julong88 2006-01-02
  • 打赏
  • 举报
回复
我也很郁闷有时事件会丢失

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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