调用COM问题,有经验的看看。

dwert 2009-11-09 04:20:47
无法将类型为“Matter.XMPPictureClass”的 COM 对象强制转换为接口类型“Matter.IXMPControl”。此操作失败的原因是对 IID 为“{ABCDEE56-7708-4368-9D01-88BF18D5F0C4}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 不支持此接口 (异常来自 HRESULT:0x80004002 (E_NOINTERFACE))。
...全文
103 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
reciment 2011-05-31
  • 打赏
  • 举报
回复
帮 顶
dwert 2009-11-09
  • 打赏
  • 举报
回复
我在顶~
xupeihuagudulei 2009-11-09
  • 打赏
  • 举报
回复
帮顶
dwert 2009-11-09
  • 打赏
  • 举报
回复
不行哦!会不会是COM有问题?但是COM用VC调用是正常的。
wuyq11 2009-11-09
  • 打赏
  • 举报
回复
Matter.IXMPControl pic = new Matter.XMPPictureClass();
XMPMATTERLib.IXMPControl xmpic = new XMPMATTERLib.IXMPControl ();
Picture zpic = new Picture();
lzsh0622 2009-11-09
  • 打赏
  • 举报
回复
Matter.IXMPControl pic = new Matter.XMPPictureClass();

类型前后要一致
dwert 2009-11-09
  • 打赏
  • 举报
回复
static void Main(string[] args)
{
Int32 version = 0; ;
string name="";
Matter.IXMPControl pic = new Matter.XMPPictureClass();
XMPMATTERLib.IXMPControl xmpic = new XMPMATTERLib.XMPPictureClass();
Picture zpic = new Picture();
try
{
pic.Description(out version, out name);
}
catch (Exception ex)
{
if (ex is COMException)
{
string ecode = (ex as COMException).Message;
Console.WriteLine("Error:->{0}", ecode);
Console.Read();
}
}

Console.WriteLine("Version is {0}\nName is {1}", version, name);
zpic.OptionsGetName(0, out name);
xmpic.OptionsGetName(0,out name);
Console.WriteLine("Name is {0}", name);
Console.Read();
}
这个是我调的代码,帮忙分析下!
lzsh0622 2009-11-09
  • 打赏
  • 举报
回复
类型不对:
Matter.XMPPictureClass这个类型的对象, 当作Matter.IXMPControl接口类型使用了。
wartim 2009-11-09
  • 打赏
  • 举报
回复
接口找不到,要么名字不对,要么参数不匹配
vssvss 2009-11-09
  • 打赏
  • 举报
回复
你是调用哪个COM组件啊 COM组件最烦人的就是版本问题了

110,536

社区成员

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

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

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