3

因此,我正在玩弄 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);
    }

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

4

2 回答 2

3

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

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

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

于 2012-07-03T13:01:40.543 回答
1

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

于 2012-10-22T02:33:06.960 回答