ソフトウェア/ライブラリがWindowsプラットフォームをある程度サポートしている場合、ほとんどの場合、ディレクトリと変数にはwin32
と名前を付けます。これは、C/C++プロジェクトで最も一般的です。 MinGW プロジェクトのターゲットトリプルでもwin32
を使用します。これには理由がありますか? WindowsやMicrosoft Windowsのような適切な名前を使用しないのはなぜですか?命名の選択に関して法的な問題はありますか?
この質問はAPIではなく、使用されている命名規則に関するものです。ライブラリが他のオペレーティングシステムをサポートする場合、ライブラリはlinux
、freebsd
などの適切な名前、または必要な特別なサポートを使用することがよくあります。しかし、Windowsの場合、win32
と略されることがよくあります。これは、他のものと比べて少し奇妙に見えます。
Win32は、Windows APIの通称です。このAPIは、アプリケーションがオペレーティングシステムとインターフェースする方法を指定します。 UnixのPOSIX標準とほぼ同じですが、Win32はGUIやその他の多くの機能もカバーしています。
Win32 APIは、32ビットWindowsインストールに限定されません。
Windowsアプリケーションプログラミングインターフェイス(API)を使用すると、各バージョンに固有の機能を利用しながら、すべてのバージョンのWindowsで正常に動作するデスクトップアプリケーションとサーバーアプリケーションを開発できます。
Windows APIはすべてのWindowsベースのデスクトップアプリケーションで使用でき、同じ機能が32ビットおよび64ビットWindowsで一般的にサポートされています。プログラミング要素の実装の違いは、基盤となるオペレーティングシステムの機能によって異なります。これらの違いはAPIドキュメントに記載されています。
注これは、以前はWin32 APIと呼ばれていました。 Windows APIという名前は、16ビットWindowsのルーツと64ビットWindowsでのサポートをより正確に反映しています。
Windows用に開発するためにWin32 APIを使用する必要はありません。代替は、.NETクラスまたはWindows RTインターフェースです。
技術的にはWin64の亜種があります。ただし、Win32とは主にデータモデル(ポインタのサイズ)が異なります。 APIの明確なセットではありません。
Win64 API環境は、Win16からWin32への大幅な移行とは異なり、Win32 API環境とほとんど同じです。 Win32 APIとWin64 APIが結合され、Windows APIと呼ばれるようになりました。 Windows APIを使用すると、同じソースコードをコンパイルして、32ビットWindowsまたは64ビットWindowsのいずれかでネイティブに実行できます。アプリケーションを64ビットWindowsに移植するには、コードを再コンパイルするだけです。
Windowsヘッダーファイルは、32ビットコードと64ビットコードの両方で使用できるように変更されています。 ( ソース )
Win64は実質的に異なっていないため、ソースコードレベルでwin64
をターゲットとするプロジェクトはほとんど決して表示されませんが、新しいプロジェクトはwinapi
ではなく従来のwin32
。しかし、すべての実用的な目的のために、これらの名前はすべて同じAPIを指します。
Windows APIは30年以上前のものであり、PCが16ビットだった頃から存在していたため、32ビット、Win32、Win64の順になりました。 Windows開発にはプラットフォーム依存があり、アーキテクチャのOSライブラリ(dll)と一致するコードが必要です。
https://en.wikipedia.org/wiki/Windows_API#Versions
Win32に対してビルドされたWindowsアプリケーションは、32ビットアーキテクチャで実行され、Win32サブシステムを提供するWindowsオペレーティングシステムによって64ビットで実行されるため、Win32アプリは最新の64ビットWindows OSで実行されます。
Win32ビルドは時間の経過とともに次第に少なくなっていますが、おそらくwin32はすぐには完全にフェードアウトしないでしょう。 win32ビルドが段階的に廃止されると、おそらくwin128が存在し、win64が新しいwin32になるでしょう。