请教个问题..大家帮帮忙啊

huangyannew 2011-04-12 09:39:18
我用ATL写了个东西没实现IDispatch。用c#来调用.. 在windows窗体应用程序里调用时一切都是正常的 但是在asp.net WEB应用程序里后台调用 结果出错显示
无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型..此操作失败的原因是对 IID 为“{.....}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 不支持此接口 (异常来自 HRESULT:0x80004002 (E_NOINTERFACE))。

不知道什么原因哎。。不都是c#么为什么一个可以一个不行呢

后来我试了下实现IDispatch就没问题了但是那样只能用自动化兼容类型什么的而且还要改不少东西。。
各位高手帮帮忙吧
...全文
115 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangyannew 2011-04-13
  • 打赏
  • 举报
回复
已经解决了。。。犯了个愚蠢的错误、、、
huangyannew 2011-04-12
  • 打赏
  • 举报
回复
额。。有人帮帮么~
huangyannew 2011-04-12
  • 打赏
  • 举报
回复
问题是为什么 windows窗体应用程序里调用时一切都是正常的 但是在asp.net WEB应用程序里后台调用就出错了呢
ysjyniiq 2011-04-12
  • 打赏
  • 举报
回复
“后来我试了下实现IDispatch就没问题了但是那样只能用自动化兼容类型什么的而且还要改不少东西。。”
没办法,这是个设计问题
int ,short之类型的保持不变
字符串接口定义用BSTR,class里用CComBSTR封装
数组用SAFEARRAY,class里用CComSafeArray封装
接口用IDisaptch,class里CComDispatchDriver封装
万能类型VARIANT,class里用CComVariant封装
指针?上面的类型足以把指针替换掉

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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