【问题标题】:How to embed C OpenGL application in C# GUI?如何在 C# GUI 中嵌入 C OpenGL 应用程序?
【发布时间】:2013-07-13 04:34:47
【问题描述】:

我有用于类 Unix 系统的用 C 语言编写的 3D OpenGL 应用程序,它在 Linux 中运行良好,但缺少 GUI,只能通过键盘控制。 据我所知,C# GUI 是最简单、最好、最可爱的创建工具,在 Microsoft Visual Studio 2010 Ultimate 中用 C# 创建漂亮的 gui 非常容易。

所以我决定将用 C OpenGL 编写的图形应用程序嵌入到 C# 应用程序 GUI 中,就像这样: http://img854.imageshack.us/img854/2773/qoyz.jpg

当然,我想从我的 C# GUI 控制 C 应用程序。 它可以通过任何可能的方式来完成,我认为可能是一些从 C OpenGL 代码编译的 dll 文件?

我对这类东西没有任何经验,所以请给我明确的答案:)

【问题讨论】:

    标签: c# c opengl user-interface embed


    【解决方案1】:

    您可能需要为您的 C 项目创建一个托管代码包装器,以便可以从 C# 访问它。

    查看之前提出的这个问题:Porting (unmanaged) C++ to C# vs. using the C++ as a DLL in a C# application

    【讨论】:

      【解决方案2】:

      你试过Qt SDK吗?有了它,您可以创建不少“最可爱、最好的” GUI,它也是 c++ 和跨平台,与 MS WinForms 或 WPF 相反。事实上,许多基于 GUI 的程序,如 Maya 或 Aftereffects,都使用 Qt

      【讨论】:

      • 我什至使用 Mono 框架在 Linux 上运行 MS WinForms,实际上它可以在 Mono 支持的所有系统上移植。
      • 如果你不关心性能,那很好。包装器会影响性能,所以用 C# 包装 OpenGL 并不是最好的性能明智的想法......
      • 当然 P/Invoking 成本更高,但性能方程还包括调用次数;除非您使用已弃用的功能发送 10K 顶点,否则没人会注意到。这是我的经验。
      猜你喜欢
      • 1970-01-01
      • 2011-02-06
      • 2014-04-27
      • 1970-01-01
      • 2015-09-30
      • 2017-09-13
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      相关资源
      最近更新 更多