asp.net调用vc++2005写的com组件出现错误0x80010105 (RPC_E_SERVERFAULT))
时间:2011-11-28
来源:互联网
用vs2005 c++ 写的一个com 然后用asp.net调用
在网页后台的调用代码如下
C# code
点击按钮之后出现错误,错误描述如下
服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Runtime.InteropServices.COMException: 服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))
源错误:
行 25: //TextBoxB.Text = b.ToString();
行 26: jkc.Start();
行 27: jkc.Regen(10.0, 20.0, 30.0);
行 28: jkc.Closed();
行 29:
堆栈跟踪如下:
[COMException (0x80010105): 服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))]
hllGearLib.jkClass.Regen(Double M, Double Z, Double B) +0
Windlass.UI.ProeTest.Button1_Click(Object sender, EventArgs e) in E:\杨老师\461锚绞机\工程源码\Windlass\Windlass\UI\ProeTest.aspx.cs:27
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
然后com里的该函数代码如下:
C/C++ code
是pro/e的二次开发,貌似是在这一句出问题了
status = ProMdlRetrieve(name, PRO_MDL_PART, &p_handle);
我想是不是com里面对于字符串的处理导致的,因为前面用
ProStringToWstring(name, "D:\\ptc\\model\\gear\\conic_straight_gear.prt");将路径字符串转换为宽字符串了。
有谁知道的能不能告诉一下怎么回事啊
在网页后台的调用代码如下
C# code
protected void Button1_Click(object sender, EventArgs e) { jkClass jkc = new jkClass(); double m, z, b; jkc.Start(); jkc.GetParamsValue(out m, out z, out b); TextBoxM.Text = m.ToString(); TextBoxZ.Text = z.ToString(); TextBoxB.Text = b.ToString(); //jkc.Regen(10.0, 20.0, 30.0); jkc.Closed(); }
点击按钮之后出现错误,错误描述如下
服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Runtime.InteropServices.COMException: 服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))
源错误:
行 25: //TextBoxB.Text = b.ToString();
行 26: jkc.Start();
行 27: jkc.Regen(10.0, 20.0, 30.0);
行 28: jkc.Closed();
行 29:
堆栈跟踪如下:
[COMException (0x80010105): 服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))]
hllGearLib.jkClass.Regen(Double M, Double Z, Double B) +0
Windlass.UI.ProeTest.Button1_Click(Object sender, EventArgs e) in E:\杨老师\461锚绞机\工程源码\Windlass\Windlass\UI\ProeTest.aspx.cs:27
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
然后com里的该函数代码如下:
C/C++ code
STDMETHODIMP Cjk::GetParamsValue(DOUBLE* M, DOUBLE* Z, DOUBLE* B) { // TODO: 在此添加实现代码 ProError status; ProFamilyName name; ProMdl p_handle; ProModelitem p_modelitem; ProStringToWstring(name, "D:\\ptc\\model\\gear\\conic_straight_gear.prt"); status = ProMdlRetrieve(name, PRO_MDL_PART, &p_handle); if(status != PRO_TK_NO_ERROR) return S_FALSE; status = ProMdlToModelitem(p_handle, &p_modelitem); UserGetParamValue(p_modelitem, "M", M); UserGetParamValue(p_modelitem, "Z", Z); UserGetParamValue(p_modelitem, "B", B); return S_OK; }
是pro/e的二次开发,貌似是在这一句出问题了
status = ProMdlRetrieve(name, PRO_MDL_PART, &p_handle);
我想是不是com里面对于字符串的处理导致的,因为前面用
ProStringToWstring(name, "D:\\ptc\\model\\gear\\conic_straight_gear.prt");将路径字符串转换为宽字符串了。
有谁知道的能不能告诉一下怎么回事啊
作者: qmzhn 发布时间: 2011-11-28
直接写个测试程序调用吧
作者: Waistcoat23 发布时间: 2011-11-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28