【问题标题】:Creating A GUI from scratch in c++ or assembly [closed]在 C++ 或程序集中从头开始创建 GUI [关闭]
【发布时间】:2011-06-03 01:40:07
【问题描述】:

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

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

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

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

有没有办法在汇编或 c++ 中创建自定义 gui

编辑: 我只针对窗户

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

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

【问题讨论】:

  • 组装?天哪,你为什么不直接用机器语言编写代码?
  • 唯一对这个项目有帮助的就是你的用户名。
  • 您希望在什么操作系统上创建这个新的 GUI?或者你也打算从头开始编写一个新的操作系统?
  • @Luck 我有一些令人不安的消息要告诉你。您对 GUI 库有过不好的体验。您提出的解决方案是更改软件。正确的解决办法是更换开发商。如果您不能使用 GUI 库,那么您肯定无法自己编写。
  • @Jason 汇编有什么问题,你可以用硬件做很多事情,它教你很多关于计算机和高级编程语言如何工作的知识,而且它真的很简单,就是这样:指令参数1、参数2等

标签: c++ user-interface assembly window


【解决方案1】:

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

【讨论】:

【解决方案2】:

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

【讨论】:

  • 你也写了一篇非常详细的帖子,但是我最想找的是 templatetypedef
【解决方案3】:

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

【讨论】:

  • 他们说他们不想与 Win32 交互......所以他们可能需要 FASM 进行非 Windows 开发。
  • 我以为他的意思是没有 MFC,而不是 !windows 开发。
【解决方案4】:

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

【讨论】:

  • 嗯,不,这不会创建一个窗口“从头开始”CreateWindowEx 实例化一个现有的窗口类。如果你想从头开始,你可以从RegisterClassEx开始。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多