灾难性故障 (异常来自 HRESULT:0x8000FFFF (E_UNEXPECTED))

fch2004 2008-08-01 08:41:13
哪位高手帮帮忙,我在WINFORM中直接调用东软的OCX控件,没有什么问题。
但是现在想专门写个类,来调用OCX,结果就出现下面的错误。请各位高手帮帮忙了。
不胜感激!
灾难性故障 (异常来自 HRESULT:0x8000FFFF (E_UNEXPECTED))
未处理 System.Runtime.InteropServices.COMException
Message="灾难性故障 (异常来自 HRESULT:0x8000FFFF (E_UNEXPECTED))"
Source="mscorlib"
ErrorCode=-2147418113
StackTrace:
在 System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
在 ESACTIVEXLib.ESActiveXClass.Disconnect(String bstrID)
在 ToDll.Class1.Connect(String bstrID, String bstrEquType, String bstrChannel, String bstrChannelInfo, String bstrAssisParam) 位置 E:\C#OCX\TestOCX\ToDll\Class1.cs:行号 16
在 TestOCX.Form1.button18_Click(Object sender, EventArgs e) 位置 E:\C#OCX\TestOCX\TestOCX\Form1.cs:行号 436
在 System.Windows.Forms.Control.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
在 System.Windows.Forms.Button.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
在 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
在 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
在 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
在 System.Windows.Forms.Application.Run(Form mainForm)
在 TestOCX.Program.Main() 位置 E:\C#OCX\TestOCX\TestOCX\Program.cs:行号 17
在 System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart()
...全文
11068 28 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaozhunamen 2012-06-26
  • 打赏
  • 举报
回复
如果是Web程序,直接用js,首先注册,然后就可调用了,如果是用C#程序,就要用Winform程序。先添加选项,然后拖到页面(注册)即可使用了。目前应该只有这两种方式。关键是要注册,不注册,就会报你所说的问题。
Rains卍Soft 2011-07-28
  • 打赏
  • 举报
回复
应该是程序目录下缺少必要的DLL引起的
--reply by CSDN Study V1.0.0.3 (starts_2000)
Rains卍Soft 2011-07-28
  • 打赏
  • 举报
回复
应该是程序目录下缺少必要的DLL引起的
--reply by CSDN Study V1.0.0.3 (starts_2000)
LcyR8 2011-07-28
  • 打赏
  • 举报
回复 1
是因为Dotnet的CLR 无法编译你的代码才会出现这个灾难性错误,mscorlib.dll 可以去查下一这个文件,是Doenet 编译PE文件的核心。
足球中国 2010-06-12
  • 打赏
  • 举报
回复
或者哪个东西的属性设置的不正确。
足球中国 2010-06-12
  • 打赏
  • 举报
回复
哪些东西没有初始化。
溪源More 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 isee1223 的回复:]

引用 6 楼 hyblusea 的回复:
一片茫然...可能是我太菜了....帮顶算了
[/Quote]
顶!
zs_love_hh 2010-03-12
  • 打赏
  • 举报
回复
那是应为从工具栏里面拖过去实际上有个注册的过程,其实直接用也行,你必须在前面加上一些信息,具体的信息你上网查一哈嘛,这个应该好查,关键就是Ocx要注册才能使用,当然有的ocx也做了限制,如果是开发商做了限制基本就没办法引用了。
bonylee 2010-01-27
  • 打赏
  • 举报
回复
写个类继承 操作你写的类。
evaxige 2010-01-27
  • 打赏
  • 举报
回复
如果手动添加ocx控件的话,需要用到一个ocx importer,具体解决办法见如下:
http://hi.baidu.com/daijun2007/blog/item/7bc0756dc1cef3f343169408.html
wdgphc 2009-08-04
  • 打赏
  • 举报
回复
控件拖进来后,会init一些属性参数,而直接引用则没有进行初始化,是不是就出错了。
sj2583609 2009-08-04
  • 打赏
  • 举报
回复
我也遇到了 我调用 COM+的 组件 也出现这问题了 焦急中!!!
xiaoshu666 2009-06-26
  • 打赏
  • 举报
回复
同样的问题,vs2005里c#调用ocx控件!想弄个后台程序,也是灾难啊!
hhhccm 2009-05-22
  • 打赏
  • 举报
回复
我现在也遇到了这个问题,不知道你的问题解决了吗?
xx0302 2008-09-18
  • 打赏
  • 举报
回复
各位高手请各抒己见啊,我也遇到这个问题了。

我用的Supermap 的ocx 控件,本来是该把这个控件拖动到界面上的,但是我现在不要界面,
所以就直接在代码里定义,结果运行的时候,调用这个控件的方法时就报错:
未处理COMException:
灾难性故障 (异常来自 HRESULT:0x8000FFFF (E_UNEXPECTED))

请大家帮帮忙想想辙
spgoal 2008-08-03
  • 打赏
  • 举报
回复
string ID是代表什么?
另外那个ESActiveXClass myocx = new ESActiveXClass(); 是不是得在构造函数实例化,直接在声明那实例化不妥
fch2004 2008-08-02
  • 打赏
  • 举报
回复
那我就贴个简单的代码,OCX控件我是直接引用进来的。
类中的代码:
public unsafe class OCXCALSS {
ESActiveXClass myocx = new ESActiveXClass();

public unsafe void DisConn(string ID) {
int i = myocx.Disconnect(ID);
}
}

WINFORM中的代码:
private void button1_Click(object sender, EventArgs e)
{
DataAccess.OCXCALSS myclass = new OCX.DataAccess.OCXCALSS();
myclass.DisConn("dfasdfsafsd");
}
出现的错误也是上面的错误!! 麻烦高手帮忙,不胜感激!
fch2004 2008-08-02
  • 打赏
  • 举报
回复
在线等了 哪位高手帮帮忙吧!小弟实在黔驴技穷了。
如果哪位高手愿意帮忙,请加我QQ,381062616 我传OCX给您。
isee1223 2008-08-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hyblusea 的回复:]
一片茫然...可能是我太菜了....帮顶算了
[/Quote]
kyle315 2008-08-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fch2004 的回复:]
我发现了个问题,
关于C#调用OCX控件的问题,WINFORM引用该OCX控件就出问题。灾难性故障。
但是,添加到工具箱后,拖到界面上用,就没问题。请问是什么原因引起的???
怎么解决??
[/Quote]
================================================
应该是你少初始化某些设置造成的,你可以先在界面上拖一个ocx控件,然后看系统自动生成的设计代码,按照生成的设计代码进行引用,估计就不会出问题。
加载更多回复(8)

111,092

社区成员

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

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

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