web-dev-qa-db-ja.com

C ++またはアセンブリでGUIを最初から作成する

私はGUIライブラリで多くの悪い経験をしました

だから私はc ++で最初からウィンドウを作成する方法を知りたいです私はwin32について話していません、私が意味するのは基本的に外部ライブラリなしでそれを自分で作成することです

写真などを使ってウィンドウを作成する方法はありますか?はい、これがどれほど難しいかはわかっています。

また、アセンブリでc ++用にライブラリを作成できることをどこかで読みました

assemblyまたはc ++でカスタムGUIを作成する方法はありますか

編集:私は窓だけを目指しています

PS:これを行う方法を学びたいもう1つの理由は、

実際にOSを作りたいと思うかもしれません。だから私はそれでGUIが欲しいでしょう...

28
user451498

ウィンドウを作成するには、オペレーティングシステムに現在存在するウィンドウシステムとインターフェイスする必要があります。これには、ウィンドウマネージャーがカーネルスペースで実行されている場合(Windowsの場合のように)、システムコールが必要になるか、ユーザースペースウィンドウマネージャーのプロセス間通信(Xなど)が必要になります。ウィンドウを最初から作成するには、これらのウィンドウマネージャーがどのように機能し、どのプロトコルを使用しているかを確認する必要があります。 Xの場合、プロトコルがどのように機能するかに関するリソースを見つけるのはそれほど難しいことではありません。 Windowsの場合、ウィンドウマネージャーの内部は独自仕様であるため、APIを使用するしかありません。

18
templatetypedef

ソースコードをよく読んでみてください MenuetOS -完全にアセンブリで記述されており、GUIを備えていると思います。もちろん、これはWindowsやLinuxなどで実行されるプログラムを作成しようとしている場合は機能しません。ただし、Windowsとのインターフェイスを含め、すべての外部ライブラリを避けたい場合は、ベアメタルで実行する必要があります。 。

5
dsolimano

アセンブリでこのことを行うのに夢中なら、先に進んでインストールしてください masm32 、Windows /メッセージボックスなどの基本的なGUIを実行できます。

2
ismail