【问题标题】:Making a c# winforms application useable as a dll from an unmanaged mfc application使 c# winforms 应用程序可用作非托管 mfc 应用程序的 dll
【发布时间】:2011-04-07 10:42:20
【问题描述】:

我想知道如何将现有的 c# winforms 应用程序转换为类库,然后从 mfc 应用程序中调用它。有没有关于如何做到这一点的参考资料?我试过用谷歌搜索,但除了需要将ComVisible 属性设置为true 之外,我还没有找到太多信息。

谢谢。

【问题讨论】:

    标签: c# dll mfc


    【解决方案1】:

    查看 .NET 附带的 regasm.exe 工具。它将生成必要的注册表项(以及可选的 .tlb 文件),允许 COM 组件访问您的程序集。

    【讨论】:

      【解决方案2】:

      在 Visual Studio 项目属性中将输出类型更改为类库。这将使您的项目编译成 dll。另外将comvisible 属性设置为true。因此将生成一个可调用的 com 包装器和一个 tlb 文件,您可以从您的 mfc 项目中使用它们。

      另外我认为下面的链接是对 COM 互操作如何在 .Net 中工作的非常好的和详细的解释

      http://www.codeproject.com/KB/COM/cominterop.aspx

      【讨论】:

        【解决方案3】:

        一旦您正确构建了此版本,您就需要让它正常运行。主要问题可能是从非托管窗口正确地为窗口窗体提供父级,基本上让您的托管窗体存在于作为非托管应用程序开始的内容中。如果您不使用 WPF 作为非托管代码和托管表单之间的 UI 桥梁,那么您需要自己完成这项工作。您可以在 Google 上搜索此主题以获取更多信息,目前没有此主题的链接。

        【讨论】:

          【解决方案4】:

          an MSDN sample 涵盖了将 Winforms 用户控件放在 MFC 应用程序 - 对话框或视图上。除了代码之外,它还应该向您显示您需要的项目设置。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-08-10
            • 2015-02-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-05-26
            相关资源
            最近更新 更多