非托管代码中的 Windows 窗体?
Posted
技术标签:
【中文标题】非托管代码中的 Windows 窗体?【英文标题】:Windows Forms in Unmanaged Code? 【发布时间】:2009-04-11 08:32:31 【问题描述】:我很生气,因为 Visual Studio 带有一个精美的 GUI 界面设计器,而且它只能被 .NET 应用程序访问,甚至不能被托管 C++ 访问。
是否有任何简单的方法至少可以使用非托管/外部代码打开 C DLL 类型的接口?
【问题讨论】:
至于烦恼 - 你知道,如果你不喜欢它,你不必使用设计师。 我更恼火的是他们有这么好的设计师我不能用。 你可以...或者你在谈论 xaml 的东西(不是 windows 窗体) 【参考方案1】:Windows 窗体在很大程度上是 .NET 框架的一部分,不能从非托管代码访问(至少在任何实际意义上都不能)。但是,可以从托管 C++ 调用它(我不知道 Visual Studio 本身的设计器支持,但托管 C++ 绝对可以使用 Windows 窗体库)。
您可能想了解其他 C++ GUI 选项,例如 Qt、wxWidgets 或 Gtkmm。
【讨论】:
【参考方案2】:MFC 仍然是在 Visual C++ 2008 中开发 GUI 的可行选择。这里甚至是 how to integrate MFC with WinForms 上的示例。
【讨论】:
【参考方案3】:通过 Visual Studio 托管的 C++ 至少从 2003 年开始就支持表单设计器 C++ with managed Extensions 和 C++/CLI 项目允许使用表单设计器,这里有一个快速的 hello world 示例来帮助您找到它。
【讨论】:
【参考方案4】:有志者事竟成。如果您愿意跳过障碍,您可以混合和匹配几乎任何托管/非托管代码的组合。
这是一个很好的(虽然是旧的)概述: http://msdn.microsoft.com/en-us/library/ms973872.aspx
【讨论】:
以上是关于非托管代码中的 Windows 窗体?的主要内容,如果未能解决你的问题,请参考以下文章
如何在Visual C ++中创建非托管Windows GUI?