【问题标题】:Strict C Win GUI programming严格的 C Win GUI 编程
【发布时间】:2009-02-20 19:29:55
【问题描述】:

大家好,我需要一些指导。

基本上,我是一名网络开发者,过去了解一些 C 语言,但我只为 *nix 开发了一些简单的控制台应用程序。

简而言之,我想开发一个带有 GUI 的简单 Win 程序,而不是涉足以下任何技术:

.NET C# 爪哇 C++(尤其是这个)

因为我现在既没有时间也没有必要。

1)。我可以在不求助于 cpp 的情况下使用 wxWidgets(如果不能,您会建议使用什么其他具有原生外观和轻量级的小部件工具包?) 2)。我可以将 OpenCV 与严格的 C 一起使用吗? (没有模板、内联函数等) 3)。除了 MinGW,我还应该寻找其他编译器选项吗?英特尔值得研究吗? (AFAIK,它有一个限制性许可证)。 4)。对于 windows / c 编程,您建议使用以下哪种 IDE

  • 开发-C++
  • 带有适当插件的 Eclipse(不记得确切的插件了)
  • 任何文本编辑器 + *.bat 用于编译??

谢谢!

【问题讨论】:

  • 您在使用这些技术时是否受到技术限制?如果没有,您将失去拓展和学习新技术的机会,该技术可以帮助您开发“带有 GUI 的简单 Win 程序”,并且比原始开发时间短得多。 C. 无论如何都值得深思。
  • 同意。下载 Visual Studio 并尝试“Hello World”,然后再启动 C 语言。C 语言中的 Windows GUI 绝对不是微不足道的。
  • 不,我在技术上不受限制,但实际上,我觉得对于我的需要,一个具有列表视图的应用程序,其中显示有关图像和 OpenCV 的一些信息以进行对象检测。仅为此学习新技术将使我的其他计划在未来更远。是时候限制我了..
  • 我知道 winapi 可以是一个 PITA,这就是为什么我需要一个工具包来简化这个过程。许多优秀的 GUI 程序都是用 C 语言编写的,例如 Gimp,而且看起来并不像一团糟,因为使用的库可以消除很多麻烦。
  • 我可能错了,但我认为您高估了使用 C#(或类似语言)开发您描述的 Windows 应用程序的学习曲线。 Visual Studio 的 Express 版本与丰富的 C# 入门教程相结合,可以让您的应用程序立即完成。不过,我们每个人都有自己的偏好。 :)

标签: c windows user-interface


【解决方案1】:

如果您有兴趣直接学习基于 C 的 Windows 编程,而不是使用其他中间工具:

Charles Petzold 有一本非常好的参考书,名为Programming Windows。这绝对是开始的方式。绝对一切都一清二楚,您永远不需要 C++。

作为一个整体,Windows API 是为 C 程序员构建的。所有像实际应用程序窗口这样的花哨的东西都作为“HANDLE”传回,它或多或少只是指向操作系统对象表的指针。作为程序员,您永远不必处理对象,只需处理它们的 HANDLE。

另外,这本特别的书很好地描述了Windows event-loop。如果您不熟悉它,它会被详细描述。

祝你好运!

【讨论】:

    【解决方案2】:

    对于 C Windows GUI 编程,最简单的方法是 VC++(自 6.0 起的任何版本)和 Charles Petzold Programming Windows 一书。

    Microsoft 编译器的免费 Express 版本应该可以正常工作 - 我不确定您是否必须下载 Platform SDK 或者它是否附带。

    【讨论】:

      【解决方案3】:

      您可以直接用 C 语言编写 Windows GUI 程序。下载 Windows SDK 并查看“通用”示例(我假设它仍在其中)。这几乎是 Win32 应用程序所需的最少代码,而且它使用普通的 C 语言。

      编辑:嗯,这台笔记本电脑上似乎没有安装它。你可以在网上找到它here

      【讨论】:

        【解决方案4】:

        可能值得重新考虑 C#.NET。您可以在几天内轻松学习 C#,并很快开发出流畅的应用程序。相比之下,直接基于 C 的 windows 库,尤其是 Win32,是 BRUTAL。你会花一周的时间来编写一个简单的应用程序,而这需要几分钟的 C# 时间。

        【讨论】:

          【解决方案5】:

          我能想到的唯一基于 C 的工具包是 GTK+ 的 Windows 端口。不过,我没有在 Windows 环境中使用它的经验。不过,它在 Linux 方面非常成熟,如果您的需求很简单,可能就足够了。

          学习 Win32 API 很难!但就像其他人所说的那样,如果您坚持走这条路,那么 Petzold 的书就是您要走的路。

          我的观点是,仅使用 C 和 Win32 API 开发 Windows GUI 比使用足够的 C++ 来利用基于 C++ 的框架之一更难学习。你仍然可以用纯 C 语言完成大部分工作。

          至于免费的 IDE,我会选择 Visual Studio 2008 Express Edition。

          【讨论】:

          • 是的,看起来我想使用的技术(获取所需的小部件/控件和 OpenCV 库的直接方法)确实将我推向 C++。呃,这可能比我最初想象的要花更长的时间。
          【解决方案6】:

          你什么都不需要。

          像真正的程序员一样使用 C 和 Win32 api,而不是孩子..

          查看 VS Win32 向导

          【讨论】:

            【解决方案7】:

            关于wxWidgets,可以使用https://sourceforge.net/projects/wxc 我从来没有真正大量使用过它,所以我不知道它的成熟度。

            Mingw 和 Microsoft Visual C++ 是我最喜欢的编译器。请记住,您始终可以使用严格 C 并使用 C++ 编译器对其进行编译,因为有效的 C 几乎总是有效的 C++。

            对于 windows,我过去使用过 Dev-C++,但现在 Microsoft Visual C++ 似乎是一个更好的解决方案。

            如果您要使用文本编辑器+bat,请查看 Notepad++。

            编辑:澄清一下,使用 Microsoft Visual C++ 并不意味着学习 C++。您可以在其中完美地使用 C,因为 - 我重复一遍 - 有效的 C 通常是有效的 C++。不想要 C++?没问题。只要远离仅限 C++ 的功能,您在 C++ 编译器中仍然是安全的。

            编辑:Roger Lipscombe 在 cmets 中指出,纯 C 编译器在 Microsoft 的 Visual C 中可用,使用 /TC 开关。

            【讨论】:

            • Visual C++ 里面也有一个 C 编译器——不仅仅是一个不使用可怕位的 C++ 编译器。
            • 使用 /TC 开关进行 C 编译(相对于 C++ 的 /TP)。
            • 感谢 wxc 链接,不知道。
            • “有效的 C 几乎总是有效的 C++”。我没有声称有效的 C 总是有效的 C++,是吗?
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-07-31
            • 1970-01-01
            • 1970-01-01
            • 2011-07-25
            • 2011-06-30
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多