我正在从Windows编程(通过Windows编程我的意思是使用Windows API )到Linux编程。
对于编程Windows,我们有的选项是Win32API(MFC只是一个相同的C ++包装)。
我想知道是否有像直接暴露给程序员的Linux API (相当于WINAPI)? 我在哪里可以find参考?
用我对POSIX库的一点知识,我发现它包装了 Linux API 一部分 。 但是创buildGUI应用程序呢? POSIX不提供这一点。 我知道有很多像GTK,Qt等第三方Widget工具包。但我不想使用封装Linux API的库。 我想学习使用“核心Linux API”。
为什么EM_SETMARGINS在Windows 7下不起作用?
有效字幕文本颜色 – 检测变化(在.Net中)
如何添加一个额外的button到窗口标题栏,所以它将作为标准工作?
Windows任务计划程序的替代方法
Qt应用程序标题
如果有什么我应该知道的,请告知。 任何熟悉Windows和Linux编程的程序员,请映射Linux世界的术语,以便我可以快速移动。
任何资源(书籍,教程, 参考 ),高度赞赏。
search并replace:什么是适当的捷径?
Windows资源pipe理器shell扩展的自动GUItesting
TranslateAccelerator返回值
创build响应式Windows winapi c ++
MFC是否被弃用?
我想你正在寻找一些不完全存在的东西。 与Win32 API不同,没有用于执行GUI应用程序的“Linux API”。 你可以得到最接近的就是X协议本身,这是一个非常低层次的GUI(比Win32 GDI更详细和古老)。 这就是为什么存在隐藏X协议细节的包装器,比如GTK和Qt。
X协议适用于使用XLib的 C程序。
你必须明白的是,Linux对于其中包含的内容来说是非常光明的。 “核心”Linux API是POSIX和glibc。 Linux默认不是图形的,所以没有核心图形库。 真的,Windows可以被剥离到没有图形也没有像GDI那样的win32 API的一部分。 这你必须明白。 与Windows相比,Linux非常轻量级。
对于Linux,有两个主要的图形工具包,GTK和Qt。 我自己更喜欢GTK,但我会研究两个。 还要注意,GTK和Qt存在于Windows中,因为它们只是包装器。 如果你看看xterm的X协议代码,你会明白为什么没有人试图在其上创建图形应用程序。
哦,SDL也是相当不错的,它非常光亮,但是如果你只是需要一个窗口的帧缓冲,这是很好的。 它可以在Linux和Windows之间移植,而且非常容易学习。 但它只会拉伸到目前为止..
我强烈建议看一下QT / C ++ UI框架 ,它可以说是任何平台上最全面的UI工具包。
我们正在使用它开发在Windows,OSX和Linux上运行的跨平台应用程序。
它也运行在诺基亚的智能手机操作系统Maemo上 ,该系统最近与英特尔的Moblin Linux操作系统(现在称为MeeGo)合并在一起。
Linux和win并不像看起来那么不同。
在这两个系统上都存在一个不是图形的内核。
这只是微软不记录这个内核,并发布引用各种不同组件的API。
在Unix上,它更透明。 确实有一个(非GUI)内核API,它已经发布。 然后,有些服务可以运行在此之上,可选地,它们的接口将被发布,而不会尝试将它们合并到一个实际上不存在的虚构层中。
所以,最低的GUI级别是X Window System ,它有一个叫做Xlib的最低级别的库。 正如你所指出的那样,有各种各样的库在这个库上运行。
这听起来很疯狂,因为你正在问C ++和C(以及“核心Linux API”)等“严重”的东西,但是你可能要考虑用别的东西来构建。 例如:
Java Swing(许多人喜欢它!其他人讨厌它并称之为过时)
单声道的GTK#(C#或VisualBasic或任何你想要的,很多人说这很酷,但他们并不是很多人)
Adobe AIR(ActionScript,你可能讨厌它)
钛(全新的,未经证实的,但至少在iPhone世界引起轰动)
还有许多其他的可能性,其中一些可以让你一次在多个平台上工作。
对不起,如果这个答案不是你想要的。 Linux上的“真实”答案是“挑选一个工具包”,这也是没有答案的:)
看看开罗 。 这与GDI +大致相似,并且在Linux或Firefox(Eclipse)(SWT)等几个可用的GUI程序中都有。 它将大部分的nat和古老的Linux东西包装成一个很好的API,可以在大多数Linux上运行,而不会像GTK或QT那样锁定整个子系统。
还有两个不同的桌面平台的文档:Gnome和KDE可能会帮助你走下坡路。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。