1. ホーム
  2. c++

[解決済み】言語はどのように自己拡張するのですか?

2022-04-10 03:13:27

質問

私はC++を学んでいて、ちょうどいくつかのことを学び始めたところです。 Qt の機能を使ってGUIプログラムをコーディングすることができます。私は次のような質問を自分に投げかけました。

これまでOSにウィンドウを要求したり、ネットワークを介して通信したりする構文がなかったC++が、(私も完全に理解しているわけではないAPIを使って)どうして突然そのような機能を持つようになったのでしょうか。 C++で書かれたライブラリを通して? 私には、すべてがひどく回りくどいと感じます。そのライブラリにどんなC++の命令があるのでしょうか?

この質問は、経験豊富なソフトウェア開発者には些細なことに思えるかもしれませんが、私は何時間も調べても直接的な回答が見つかりません。ライブラリの存在が私には理解できないので、Qtについてのチュートリアルについていけないところまで来ています。

どうすればいい?

コンピュータはタマネギのようなもので、その中には多くの 多くの 純粋なハードウェアの内部コアから一番外側のアプリケーション層まで、さまざまな層があります。各層は自身の一部を次の外層に公開し、外層は内層の機能の一部を利用することができます。

例えばWindowsの場合、オペレーティングシステムはWindows上で動作するアプリケーションのために、いわゆるWIN32 APIを公開しています。Qtライブラリは、そのAPIを使用して、Qtを使用するアプリケーションに独自のAPIを提供します。Qtを使い、QtはWIN32を使い、WIN32はWindowsオペレーティングシステムの下位レベルを使い、ハードウェアに電気信号が入るまで、そのようなことを繰り返します。