在c ++或程序集中从头开始创建GUI

时间:2011-01-03 21:09:46

标签: c++ user-interface assembly window

我在GUI库中遇到了很多不好的经历

所以我想知道如何在c ++中从头开始创建一个窗口 我不是在谈论win32,我的意思是基本上是在没有任何外部库的情况下创建它

有没有办法可以使用图片或其他东西来创建一个窗口 是的我知道这会有多难。

我也读到某处可以在程序集中为c ++制作库

有没有办法在程序集或c ++中创建自定义gui

编辑: 我的目标只是windows

PS:我想学习如何做到这一点的另一个原因是因为

我可能想要实际创建一个操作系统。所以我想要GUI ...

4 个答案:

答案 0 :(得分:17)

要创建窗口,您需要与操作系统上当前存在的任何窗口系统进行交互。如果窗口管理器在内核空间中运行(如Windows中的情况)或者用户空间窗口管理器(如X)的某种进程间通信,则需要系统调用。要从头开始创建窗口,您需要了解这些窗口管理器的工作方式以及它们使用的协议。在X的情况下,找到协议如何工作的资源应该不会太难。对于Windows,您唯一的选择可能是使用API​​,因为窗口管理器的内部是专有的。

答案 1 :(得分:5)

您可以尝试将源代码仔细阅读MenuetOS - 我相信它完全是在汇编中编写的,它有一个GUI。当然,如果您正在尝试编写在Windows,Linux等上运行的程序,这将无效。但如果您想避免所有外部库,包括与Windows连接,您将不得不在裸机上运行

答案 2 :(得分:1)

如果你疯狂到装配这件事继续安装masm32,它可以做基本的GUI,如windows / messagebox等。

答案 3 :(得分:-6)

通过调用“CreateWindowEx”Win32 API,您可以在Windows上“从头开始”创建一个窗口。