灾难性故障(HRESULT异常:0x8000FFFF(E_UNEXPECTED)):ActiveX和C#控制台应用程序

时间:2012-06-28 13:27:10

标签: c#-4.0 com activex

所以,我正在玩ActiveX和C#以及它们如何协同工作的方式。事情是我在开头提到错误时就碰到了墙。我遵循的步骤:

在VS2010中,我选择了MFC ActiveX Control项目。然后我添加了一个方法“SHORT Multiply(SHORT a,SHORT b);”通过单击右键单击解决方案资源管理器中ProjectnameLib下的_DProjectname时弹出的菜单中的“添加方法”选项。该方法的代码如下:

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

     // TODO: Add your dispatch handler code here

     return ( a * b);
    }

现在我创建了一个引用生成的COM文件的简单C#控制台应用程序,当我尝试使用该方法时,应用程序因上述错误而停止。我在互联网上搜索了错误,但没有提到明确的解决方案。任何帮助赞赏。如果你们想要澄清,请告诉我。

2 个答案:

答案 0 :(得分:3)

我不知道这是否被视为解决问题,但我找到了解决方法:

首先代替C#控制台应用程序,我创建了C#windows窗体应用程序。创建表单后,我将整个ocx添加为工具箱中的组件。您可以通过右键单击“工具箱”菜单中的“工具箱”类型来执行此操作。在新菜单中,单击“选择项目”。这会弹出一个新菜单,然后选择COM选项卡,然后检查COM组件,COM组件将添加到Toolbox菜单中。现在将组件拖放到菜单上,你应该很高兴。

这似乎是每个人都在追随的解决方法。不整洁,但这是我认为的常态。

答案 1 :(得分:1)

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