[解決済み】言語はどのように自己拡張するのですか?
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オペレーティングシステムの下位レベルを使い、ハードウェアに電気信号が入るまで、そのようなことを繰り返します。
関連
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】'cout'は型名ではない
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] 0.1fを0にすると、なぜ10倍もパフォーマンスが落ちるのですか?
-
[解決済み] Mavenプロジェクトにローカルのjarファイルを追加する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】cc1plus:エラー:g++で認識されないコマンドラインオプション"-std=c++11"
-
[解決済み】Visual C++で "Debug Assertion failed "の原因となる行を見つける。
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。