灾难性故障(从HRESULT异常:0x8000FFFF(E_UNEXPECTED)):ActiveX

2019-09-18 16:32发布

所以,我玩弄ActiveX和C#和方式如何他们两个可以一起工作。 事情是我已经打在墙上的权利与上述错误的开始。 步骤我都遵循:

在VS2010我选择MFC ActiveX控件项目。 然后我添加了一个方法 “SHORT乘法(SHORT一个,SHORT B);” 通过点击菜单中的Add方法选项弹出当你右键点击_DProjectname在解决方案资源管理ProjectnameLib下。 该方法的代码如下:

    SHORT CSampleProgramActivex01Ctrl::Multiply(SHORT a, SHORT b)
    {
      AFX_MANAGE_STATE(AfxGetStaticModuleState());

     // TODO: Add your dispatch handler code here

     return ( a * b);
    }

现在,我已经创建了引用生成的COM文件,当我尝试使用方法,应用程序与上面提到的错误停止一个简单的C#控制台应用程序。 我已经搜查了错误的互联网上,但没有明确的方案被提及。 任何帮助表示赞赏。 如果你们想澄清,让我知道。

Answer 1:

我不知道这是否被认为是解决问题或没有,但我发现了一个解决办法:

首先,而不是C#控制台应用程序,我创建了C#Windows窗体应用程序。 创建表格后,我已经添加了整个OCX在工具箱中的组成部分。 您可以通过右键单击工具箱菜单工具箱类型做到这一点。 在新的菜单,单击选择项。 这种弹出新的菜单,并在选择COM选项卡,并在检查你的COM组件和COM组件将被添加到工具箱菜单。 现在拖动菜单上删除组件,你应该是好去。

这似乎是变通方法,每个人都在下面。 不整洁,但也就是我认为的常态。



Answer 2:

看看这里:如何使用OLE控件作为在Visual C ++中的自动化服务器http://support.microsoft.com/kb/146120/en-us



文章来源: Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED)): ActiveX and C# Console Application