| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 692 人关注过本帖
标题:COM 编程问题
只看楼主 加入收藏
renegade2007
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-10-20
收藏
 问题点数:0 回复次数:1 
COM 编程问题

COM 编程问题。帮帮忙吧。急。我都要疯了

开发环境:vs2005, c#
我现在遇到了一个问题,我使用一个第三放的现成COM组件, XXX.TLB,在把这个文件添加到项目后,一开始还正常,
调用一些函数什么的都没有问题。现在忽然碰到了一个问题,弄了三四天了,还是没有结果。
这个问题是有一部分函数不好用。这些函数在开发环境的对象浏览器中原形看到如下:
object GetLinks();


但是在手中已有的文档中,原形如下:
IDispatch **GetLinks();
文档对该函数的说明是:返回值是一个指向 Links 对象指针的指针。

在程序中我是这样使用的:

Links linkset;
linkset = (Links)GetLinks(); <----- 就是这行出错

我把报错的异常信息贴在了下面:
---------------------------------------
在 xxxx.Form1.ConnectServer() 位置 D:\My Documents\Visual Studio 2005\Projects\xxxx\xxxx\Form1.cs:行号 72

System.InvalidCastException: 无法将类型为“System.__ComObject”的 COM 对象强制转换为类类型“Links”。进入 CLR 且不支持 IProvideClassInfo 或没有注册任何互操作程序集的 COM 组件都将包装在 __ComObject 类型中。这种类型的实例不能强制转换为任何其他类;不过,只要基础 COM 组件支持对接口 IID 的 QueryInterface 调用,就能将这些实例强制转换为接口。
在 xxxx.Form1.ConnectServer() 位置 D:\My Documents\Visual Studio 2005\Projects\xxxx\xxxx\Form1.cs:行号 72
---------------------------------------

现在实在是不知道怎么弄了。能想到的方法我都想到了,可就是解决不了。我都要疯了。各位牛人,帮帮忙吧。真的要疯了

搜索更多相关主题的帖子: COM 
2007-10-20 22:08
renegade2007
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-10-20
收藏
得分:0 
哦,对了,是运行是出的错,build 的时候没有报错。
2007-10-20 22:09
快速回复:COM 编程问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015753 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved