asp.net C# 调用OCX 报错:“灾难性故障 (异常来自 HRESULT:0x8000FFFF (E_UNEXPECTED))”
asp.net C# 调用OCX 报错:“灾难性故障 (异常来自 HRESULT:0x8000FFFF (E_UNEXPECTED))”环境:VS2005 C#
前提:控件已注册过了,也已在WinForm中调用成功了。
在WinForm中可以将此控件添加到工具箱里,但在WebForm虽然我在“COM组件”将此控件选上了,可是控件箱里并没有看到此控件,同时我也引用了这个控件。
OXC 对象可以调用,但却调用不了ocx的方法.
CS文件里:声明对象是没有问题的,可是一调用对象的方法“GxMonitor.GxInitClient”就报上面提到的错误。
using GXMONITORCLib;
GxMonitorC GxMonitor = new GxMonitorC();
protected void Button1_Click(object sender, EventArgs e)
{
//try
//{
if (!GxMonitor.GxInitClient("192.168.0.158", 10001, 10002))
{
ShowMsg("启动监听失败!");
return;
}
// }
//catch (Exception ex)
//{
// ShowMsg(ex.Message);
//}
}
具体错误信息如下:
用户代码未处理 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)
在 GXMONITORCLib.GxMonitorCClass.GxInitClient(String pIp, Int32 uConPort, Int32 uUdpPort)
在 _Default.Button1_Click(Object sender, EventArgs e) 位置 c:\ttttt\WebSite2\Default.aspx.cs:行号 35
在 System.Web.UI.WebControls.Button.OnClick(EventArgs e)
在 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
--------------------编程问答-------------------- 另外在aspx文件里我也加上了“<object id="GxMonitor" width="50" height="20" classid="CLSID:E8362CFF-EA1C-4D0E-B280-949F7103EE05">
</object><br />”
运行时,也看到这个控件了。
--------------------编程问答-------------------- 前台JS直接调用吧,后台代码调用,一般都是提示灾难性故障,呵呵。
具体原因不晓得是不是OCX只能单线程下运行的原因。 --------------------编程问答-------------------- 当然你用WINFORM调用肯定没有问题 --------------------编程问答-------------------- GOOD --------------------编程问答--------------------
能列举个例子吗?没有弄过JS --------------------编程问答-------------------- 前提:控件已注册过了,也已在WinForm中调用成功了。
但在WebForm虽然我在“COM组件”将此控件选上了,可是控件箱里并没有看到此控件,同时我也引用了这个控件。
请楼主严格区分WinForm控件与WebForm控件,二者的基制是完全不相同的。
不能将WinForm的控件用于WebForm --------------------编程问答-------------------- 楼主您好,请问如何在客户端调用cox,我做了一个ocx,需要在客户端运行,一运行就提示灾难性故障 --------------------编程问答-------------------- asp.net最好是在JS里面调用,要嘛就嵌在页面中,后台不好调用的! --------------------编程问答-------------------- 学习,帮顶 --------------------编程问答-------------------- <object id="BabyOnline" name="BabyOnline" classid="clsid:Fdsf05-2fdD7-4ddd-Bddd-98dddd43D2F"
style="width: 352px; height: 288px;" class="style1">
</object>
<script type="text/javascript">
<!--
var lResult = 1;
//初始化OCx控件
lResult = BabyOnline.CreateInstance();
if(lResult != 0){
alert("初始化失败");
}
function GetList(){
lResult = BabyOnline.GetList();
if (lResult == "" ){
resultMSG = "no";
}else{
resultMSG = "Yes";
}
}
} --------------------编程问答-------------------- 遇到了一样的问题,
天啊要死了都,
后台调用说灾难性故障,
前台用说对象未定义。。。。。 --------------------编程问答-------------------- 楼主,你这问题解决了不
我遇到相同问题
http://topic.csdn.net/u/20110907/14/1a46efbc-a0cc-453d-b990-31d826e64b05.html
补充:.NET技术 , C#