在没有 Win32 API 的 Windows 上用 C++ 或汇编从头创建 GUI [已关闭]

问题描述 投票:0回答:4

我在 GUI 库方面有过很多不好的经历

所以我想知道如何在 C++ 中从头开始创建一个窗口 我不是在谈论 win32,我的意思是基本上自己创建它,而不需要任何外部库

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

我还在某处读到可以在汇编中为 C++ 制作库

有没有办法在汇编或C++中创建自定义GUI

编辑: 我的目标只是Windows

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

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

c++ windows assembly window low-level
4个回答
24
投票

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


5
投票

您可以尝试仔细阅读 MenuetOS 的源代码 - 我相信它完全是用汇编语言编写的,并且有一个 GUI。当然,如果您尝试编写一个在 Windows、Linux 等上运行的程序,这将不起作用。但是如果您想避免所有外部库,包括与 Windows 的接口,则必须在裸机上运行.


2
投票

如果你足够疯狂,想在汇编中做这件事,请继续安装masm32,它可以做基本的GUI,如窗口/消息框等。


-8
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.