这并不意味着是煽动性的或类似的东西,但我正在学习C,(认为)我对大多数基本知识都有很好的掌握。我做过各种各样的书籍练习:素数生成器,Fibonacci生成器,字符串操作,yadda yadda,但是这些都不是很酷。
什么是命令行程序和某物之间的“桥梁”?我听说过用C写的各种游戏,但是怎么写的呢?
原谅我的愤怒,但感觉好像我已经学到了很多东西,但仍然只能做一些相对较少的事情。感谢您对如何处理C.
相关信息: OS豹、PHP和web开发经验(这太棒了,因为项目马上就在您认识到它们如何强大的环境中)
发布于 2009-11-11 02:36:10
摘要
好的,这篇文章变得很大,所以在阅读之前,这里有一个简短的总结:要编写GUI,有许多好的C/C++库(例如,QT)。至少在Windows系统上,大多数人所做的是在需要GUI时使用.NET语言(如C#),在需要更多控制/速度时使用C/C++。两者结合使用也很常见,即在C#中制作图形用户界面,在C中使用速度关键部件。
我仍然鼓励你阅读更长的答案,它包含了更多关于你选择的信息。
更长的答案
我将从一个大问题开始,然后(尽我所能)回答您关于创建GUI的具体问题。我认为C用于教授编程的事实让您感到痛苦,而且仅仅使用命令行程序(毕竟,它们编写起来要简单得多)要容易得多。这并不意味着C不能完成您想要的所有东西,特别是GUI。确实如此。我不认为有任何类型的软件是没有用C语言完成的,通常是在用其他语言之前。
好吧,一些答案:
是C有用的吗?
C及其非常接近的C++负责在世界代码中巨大的部分。我不知道用C语言编写的代码是否比任何其他语言都多,但我猜它已经不远了。
您使用的大多数真正重要的程序实际上都是用C/C++编写的。举个例子,Windows。
今天C在哪里使用?
C/C++仍然使用批量。它们对于开发低级别的东西特别有用(比如操作系统,它需要很大的速度,有很强的控制代码功能的能力,等等)。
但不要认为这对C程序员来说都是低水平的。即使在今天,有了许多其他可用的语言(这些语言可以说更好,当然也更容易编程),C仍然被用来创建几乎所有的东西。您专门问到的GUI应用程序通常是用C编写的,尽管现在很多人都转向了其他语言。注意,我说的转换:C曾经是写作的标准语言,嗯,所有的东西,真的。
如何用C开发GUI
好的,您特别想知道如何用C创建GUI (我希望C++也可以)。
首先,这取决于以下几个因素:
最常见的情况是编写在Windows上工作的软件。在这种情况下,“自然”解决方案是编写与Win32 API一起工作的东西。这基本上就是Windows的“附带”库,允许您做任何您想做的GUI工作。
这件事的最大问题是,这有点难。就像,很难。这就是大多数人不再从事那种工作的原因。
那你还有其他选择吗?
最自然的是使用所谓的.NET语言。这些都是微软创建的一堆语言和库。它们可能是在Windows上获得GUI的最简单方法。问题是,您不能真正使用C语言(因为它不是.NET语言)。
假设您想呆在C/C++中,您可以使用某种库来简化Windows API的使用(因为它隐藏了所有丑陋的细节):
第三方库的优点是,如果选择正确的库,则可以使用相同的代码同时为所有操作系统创建GUI。
我认为这些库中最著名的是QT,还有WxWidgets,但是还有很多其他库。我个人会选择QT,因为它似乎获得了最大的声誉,但我也没有工作过。
发布于 2009-11-11 02:13:09
每个主要的操作系统都有用C实现的所有低级库。Mac OS X是一个类似Unix的系统,如果你是C程序员的话,这是一个很棒的世界。
从Unix编程艺术获得一些很棒的想法。
至于GUI,您可能希望使用X11。有很多很好的文档--大多数Unix编程工具和最深层的系统级文档--只是假设您在使用C,因为这是每个人都在使用的。
发布于 2009-11-11 02:14:51
那得看情况了。如果您想构建桌面应用程序,一个主要语言为C的多平台GUI库是GTK+:
对于游戏,请查看SDL:
它为你提供了像直接输入键盘,2D图形,一些音频,甚至线程之类的想法。如果您想进入3D世界,它还可以打开OpenGL上下文(但是在原始OpenGl中很难做到这一点)。我有提到SDL是多平台的吗?
然而,C的真正优势在于系统编程。对于桌面应用程序/游戏,也许您最适合使用C++。现在您已经掌握了C的命令,学习基本的C++应该很容易;)。
https://stackoverflow.com/questions/1712546
复制相似问题