(Translated by https://www.hiragana.jp/)
Windows API - Wikipedia

Windows API

Microsoft WindowsのシステムコールようAPI
Win32から転送てんそう

Windows APIウィンドウズ エーピーアイ)とは、Microsoft WindowsシステムコールようAPIのこと。とくに32ビットプロセッサで動作どうさするWindows 95以降いこうWindows NT利用りようできるものはWin32 APIとばれる。また、それらのWindowsにおけるWin32 APIの実装じっそうをWin32とぶ。

64ビットプロセッサけのWin64 APIもふくめる場合ばあいは「Windows API」という包括ほうかつてき名称めいしょう正確せいかくだが、慣習かんしゅうてきにWin32とえばWin64もふくんでいることがある[1]

概要がいよう

編集へんしゅう

Windowsオペレーティングシステム (OS) じょう動作どうさするアプリケーションにとって、Windows APIはWindowsのかく機能きのうにアクセスするための接点せってんである。そのため、Windowsじょう動作どうさするアプリケーションを作成さくせいできる様々さまざまなプログラミング言語げんご開発かいはつ環境かんきょうにおいてWindows APIを使用しようする手段しゅだん提供ていきょうされている。とくCC++けには、Windows SDKにより、<windows.h>をはじめとする多数たすうヘッダーファイル公開こうかいされている。Microsoft Visual C++のC/C++ランタイムライブラリのうち、OSの機能きのうにアクセスするものは、内部ないぶてきにWindows APIをもちいて実装じっそうされている。また、おおくの開発かいはつ環境かんきょうで、Windows APIをもとにした、より高水準こうすいじゅんフレームワーク構築こうちくされている。これらをつうじて、すべてのWindowsアプリケーションは、直接的ちょくせつてきまたは間接かんせつてきにWindows APIを使用しようしている。

Windows APIにぞくするかくAPIは、おもDLL実装じっそうされており、C言語げんご形式けいしき関数かんすうまたはCOMインターフェイスとして機能きのう公開こうかいされている。関数かんすう呼出よびだし規約きやくはWin32 (x86) の場合ばあい原則げんそくとしてstdcallを採用さいようする[2][3]など、統一とういつされたインターフェイスで多数たすうのプログラミング言語げんごからの使用しよう容易よういなものとしている。

分類ぶんるい

編集へんしゅう

Windows APIの中核ちゅうかくとなる機能きのうはKernel、User、GDIにけられる[4]当初とうしょは、それぞれKERNEL.EXE (モードによってはKRNL286.EXE、KRNL386.EXE)、USER.EXE、GDI.EXEに実装じっそうされていた。32ビットされて以降いこうは、KERNEL32.DLL、USER32.DLL、GDI32.DLLに実装じっそうされている。Windows 7のしんカーネル、MinWinでは、"Virtual DLL"の仕組しくみが導入どうにゅうされ、インターフェイス互換ごかんせい維持いじしたうえで実装じっそう整理せいりおこなわれている[5][6]

Kernel
ファイルシステムデバイスプロセススレッドレジストリ例外れいがい処理しょりなど基盤きばんとなる機能きのう
User
ウィンドウの処理しょりボタンやスクロールバーなどといった基本きほんてきコントロール、マウス・キーボード入力にゅうりょく、そのグラフィカルユーザーインターフェイス (GUI) にかかわる機能きのう
GDI
ディスプレイ・プリンタをはじめとした出力しゅつりょく装置そうちへの描画びょうが機能きのう

現在げんざいでは、これだけにまらず、多数たすうのDLLから無数むすう機能きのう公開こうかいされている。現在げんざい、マイクロソフトのドキュメントではつぎのように分類ぶんるいしている[7]

  • Administration and Management
  • Diagnostics
  • Graphics and Multimedia
  • Networking
  • Security
  • System Services
  • Windows User Interface

なお、この分類ぶんるいでは、KernelはDiagnosticsとSystem ServicesそしてSecurityにまたがってぞくし、UserはWindows User Interface、GDIはGraphics and Multimediaにぞくする。

グラフィックとマルチメディア

編集へんしゅう

マイクロソフトはWindows 95/Windows NT 4以降いこうすべてのWindowsにDirectX用意よういしている。DirectXはおもゲームマルチメディアのためのAPIであるが、Windows Vista以降いこうはDirectX GraphicsがGDIにわってOSのグラフィックス描画びょうが基盤きばんとして昇格しょうかくされている。Windows OSのバージョンや、サービスパックあるいは機能きのう更新こうしんプログラムの適用てきようじょうきょうによって、利用りよう可能かのうなAPIやAPIのバージョンがことなる。DirectX APIのうちのいくつかは、ゲームコンソールであるXboxシリーズ(XboxXbox 360Xbox Oneなど)と共通きょうつうになっている。大半たいはんはハードウェアとの通信つうしん仲介ちゅうかいするAPIであり、利用りようするにあたって、DirectX対応たいおうハードウェアおよびデバイスドライバーのインストールが必要ひつようとなるものもおおい。

Direct3D
3Dグラフィックスアクセラレータ操作そうさ当初とうしょはWindowsにおけるOpenGL代替だいたい手段しゅだんでもあったが、Direct3D 12はよりハードウェアにちかいローレベルAPIとなり、競合きょうごうVulkanである。
DirectDraw
2Dグラフィックスアクセラレータ操作そうさ。DirectX 8.0以降いこう、DirectDrawの機能きのうはDirect3Dに吸収きゅうしゅうされた。
DirectX Graphics
DirectX 8.0以降いこう導入どうにゅうされた名称めいしょうで、Direct3DおよびDirectDrawの統合とうごう意味いみするものだったが[8]、DirectX 11以降いこうはDXGI/Direct3D/Direct2D/DirectWrite/DirectCompositionの総称そうしょうとなっている[9]
DXGI (DirectX Graphics Infrastructure)
DirectX 10以降いこう、DirectX Graphicsから比較的ひかくてき変化へんかゆるやかな部分ぶぶんはDXGIとしてDirect3Dから分離ぶんりされた。
Direct2D
Direct3Dうえ構築こうちくされたこうレベル2D描画びょうがようAPI。GDI+えとなる。
DirectWrite
テキストおよびフォント/フォントグリフあつかう。
DirectCompute
DirectX 11で導入どうにゅうされたGPGPUようのAPIという位置付いちづけだが、実際じっさいにはDirect3Dの一部いちぶ
DirectSound
てい水準すいじゅんなハードウェア(おもにサウンドカード)への操作そうさ
DirectMusic英語えいごばん
DirectSoundの上位じょうい位置いちし、音楽おんがく(メディアファイルの再生さいせいなど)をあつかう。
DirectX Audio
DirectX 8.0以降いこう導入どうにゅうされた名称めいしょうで、DirectSoundおよびDirectMusicの統合とうごう意味いみするものだったが[8]、DirectX 9以降いこうX3DAudio/XAudio2/XACT/DirectSoundなどの総称そうしょうとなっている[10]
DirectInput
ジョイパッドやゲームパッドからの入力にゅうりょく、およびフォースフィードバックあつかう。
XInput
Xbox 360Xbox OneのコントローラーをWindowsじょう使つかえるようにするAPI。
DirectPlay英語えいごばん
ネットワークなどをかいした通信つうしん
DirectShow
汎用はんようてきなマルチメディアパイプラインシステム。

DirectX APIはWindows APIのなかでも変化へんかはげしいAPIのひとつで、Direct3D RM、DirectDraw、DirectSound、DirectInput、DirectPlay、およびDirectMusicはWindows Vista以降いこう完全かんぜん互換ごかん機能きのう用意よういされず、一部いちぶのぞいて廃止はいしあるいは代替だいたいAPIに吸収きゅうしゅうされている[11][12]

静止せいし

編集へんしゅう

動画どうが音声おんせい

編集へんしゅう
WGL英語えいごばん
OpenGLとWindows (GDI) との連携れんけい部分ぶぶん担当たんとうするAPIである。かく関数かんすうめい接頭せっとうwglはじまり、<wingdi.h>宣言せんげんされている。なお、Windows SDKに付属ふぞくするOpenGLヘッダーおよびライブラリにはOpenGL 1.1までの関数かんすうしか定義ていぎされておらず、したがってOpenGL 1.2以降いこう機能きのう使つかうためには、Khronosから最新さいしんのOpenGLヘッダーをダウンロードしたのち、WGLのwglGetProcAddress()関数かんすうもちいてハードウェアベンダーが提供ていきょうするOpenGL ICD (Installable Client Driver) の関数かんすうエントリポイントをアプリケーション実行じっこう取得しゅとくするなどの作業さぎょう必要ひつようとなる[14]

ネットワーク・インターネット

編集へんしゅう

コンポーネント技術ぎじゅつ

編集へんしゅう

ネイティブAPI

編集へんしゅう

ネイティブAPIは、Windows NTけいにおいてWindows APIより下位かいそうのAPIである。NTけいでは、NTネイティブAPIじょうにサブシステムとしてWin32 APIが実装じっそうされている。ただし、DirectXやGDIなどは、ネイティブAPIをかいさず、より下位かい位置いちするカーネルと直接ちょくせつやりりをおこなう。

.NET Frameworkとの関係かんけい

編集へんしゅう

Windowsで動作どうさする.NET Frameworkは、基本きほんてきにWin32 APIをもちいて実装じっそうされている。たとえばWindows FormsおよびWindows Presentation Foundation (WPF) はそれぞれ内部ないぶてきにGDI/GDI+あるいはDirect3Dを利用りようして構築こうちくされたGUIアプリケーションのフレームワークであり、Win32 APIとの相互そうご運用うんようせい確保かくほされている。基本きほんクラスライブラリも、OSの機能きのうにアクセスするものはWindows APIを内部ないぶてき利用りようしている。P/InvokeやCOM相互そうご運用うんようによって、.NETアプリケーションからWindows APIを利用りようすることも可能かのうである。

かつて、「Windows Vista以降いこう、WinFXとばれるあたらしいAPIがWindows APIにわってネイティブAPIになる(WinFXがもっとてい水準すいじゅんなAPIとなりWindows APIはそのラッパーとなる)」とアナウンスされたことがあったが、結局けっきょく撤回てっかいされ、Windows Vista製品せいひんばんでは従来じゅうらいどおりWindows APIがネイティブなAPIとなっている[16]。WinFXの計画けいかく方針ほうしん転換てんかんされ、予定よていされていた機能きのうは.NET Framework 3.0としてリリースされた[17]

実装じっそう

編集へんしゅう

Windows APIは名前なまえからも類推るいすいできるとおり、おもMicrosoft Windows実装じっそうされている。その実装じっそうはWindowsのバージョンごとすくなからずちがいが存在そんざいする。たとえばWin32の場合ばあい、Win32c、Win32sではごく一部いちぶのぞUnicode対応たいおうしていない、セキュリティ対策たいさくのアクセス制限せいげん実装じっそうされていないなどといったちがいがげられる。そしてそれはおおきくつぎのように分類ぶんるいすることができる。

Win16は、16ビットプログラムよう実装じっそうである。ただし、Win16というかたり自体じたいはWin32が登場とうじょうしてからもちいられるようになったレトロニムである[18]。Win16はおおきく2種類しゅるいけられる。

  • Windows 1.0からWindows 3.1までおよびWindows 95/98/Me(9xけい)の実装じっそう
  • WOW (Windows on Windows): Windows NTによるWin16サブシステムによる実装じっそう

Win32は、32ビットプログラムよう実装じっそうである。つぎのようにけられる。

Win32
狭義きょうぎのWin32は、NTけい実装じっそうす。
Win32c
9xけい実装じっそう。'c'は「compatibility」(互換ごかん)の頭文字かしらもじである。しかし、現在げんざい[いつ?]では9xの実装じっそう区別くべつなくWin32と[19]
Win32s
Windows 3.1よう実装じっそう。's'は「subset」(サブセット)の頭文字かしらもじである。Windows 3.1には搭載とうさいされておらず、別途べっと入手にゅうしゅインストールする必要ひつようがある。
Win32 for Windows CE[20]
Windows CE実装じっそう文字もじコードUnicodeのみを使用しようするなどのてん特徴とくちょうてきである。
WOW64 (Windows on Windows 64)
Win64じょうでWin32をエミュレーションするサブシステムによる実装じっそう

Windows NTがx86以外いがいアーキテクチャ移植いしょくされたことにともない、Win32は各種かくしゅアーキテクチャけに移植いしょくされている[21]。また、Windows NTではないが、かつてMacintoshようのWin32も存在そんざいし、Microsoft Visual C++ 4.0 Cross-Development Edition for Macintoshとしてクロスコンパイラとともに発売はつばいされていた[22]。これらアーキテクチャのことなるWin32のあいだにはソースコードうえでの互換ごかんせいがある。

Win64は、64ビットプログラムよう実装じっそうである。2021ねん3がつ現在げんざい主流しゅりゅうx64だが、Windows 10ではARM64もサポートされるようになった[23][24][25]

かつてWindows Server 2003およびWindows XPにてIA-64のサポートがはじまったが、Windows Server 2008 R2最後さいごにサポートがられた[26]

マイクロソフト以外いがいによる実装じっそう

編集へんしゅう

Windows APIの仕様しようWindows SDKのドキュメントやMicrosoft Docs(きゅうMSDN ライブラリ)で公開こうかいされており、それをもとにしたMicrosoft Windows以外いがいのWindows APIの実装じっそう存在そんざいする。

WindowsランタイムAPI

編集へんしゅう

WindowsランタイムAPI (WinRT API) は、Windows 8導入どうにゅうされたWindowsストアアプリ (Modern UIアプリケーション) を開発かいはつするためのCOM拡張かくちょうによるこうレベルAPI。後継こうけいとなるWindows 10導入どうにゅうされたユニバーサルWindowsプラットフォーム (UWP) アプリケーションの開発かいはつにおけるベースAPIにもなっている。一部いちぶのWinRT APIは、従来じゅうらいのデスクトップアプリケーションから利用りようすることもできる[27]従来じゅうらいのWindows APIは、WinRT APIと対比たいひ区別くべつされるとき、Win32 APIとばれることがおおい。

詳細しょうさい

編集へんしゅう

Unicode対応たいおう

編集へんしゅう
かくWin32が実装じっそうしているAPI
Win 9x Win NT Win CE
A Yes Yes No
W 一部いちぶ対応たいおう Yes Yes

Windows NTけいでは当初とうしょからUnicodeもちいられている一方いっぽう、Unicodeに対応たいおうしていないWin16と互換ごかんせいるために、Win32 APIからおなじAPIにたいしてマルチバイト文字もじはんとUnicodeばんの2つを用意よういし、C/C++のマクロを駆使くししてコンパイルにどちらを使つかうか選択せんたくできる仕組しくみが採用さいようされている[28]。なお、Unicodeの符号ふごうには当初とうしょUCS-2が、Windows 2000から正式せいしきUTF-16もちいられている[29]

具体ぐたいてきには、文字もじおよび文字もじれつかかわる関数かんすう構造こうぞうたいについて、マルチバイト文字もじ(Windowsコードページにもとづく、日本語にほんご環境かんきょうであればコードページ932)とUnicode (UTF-16) のどちらをあたえることもできるように、2つの関数かんすう構造こうぞうたいなどが準備じゅんびされている。その場合ばあい、マルチバイト文字もじれつあたえるべき関数かんすう構造こうぞうたい末尾まつびに「A」をけ、ワイド文字もじれつあたえるべき関数かんすう構造こうぞうたい末尾まつびに「W」をけて区別くべつしている。たとえば、Win16のMessageBox関数かんすうたいして、Win32ではMessageBoxAとMessageBoxWという2つの関数かんすう用意よういされている。そして、プリプロセッサ識別子しきべつしUNICODE定義ていぎ有無うむによってえがおこなわれる。

#ifdef UNICODE
#define MessageBox MessageBoxW
#else
#define MessageBox MessageBoxA
#endif

さらに、文字もじがたたいしても同様どうようにCHAR (charのtypedef) とWCHAR (wchar_tのtypedef) をUNICODE定義ていぎおうじてえるTCHARがたなどや、ナロー文字もじれつ定数ていすう・リテラルとワイド文字もじれつ定数ていすう・リテラルをえるTEXTマクロが存在そんざいする。

#ifdef UNICODE
#define TEXT(s) L ## s
typedef WCHAR TCHAR;
#else
#define TEXT(s) s
typedef CHAR TCHAR;
#endif

これらを適切てきせつもちいると、1つのソースコードからコンパイルのオプションによってマルチバイト文字もじもちいる実行じっこうプログラムとワイド文字もじもちいる実行じっこうプログラムの2種類しゅるい作成さくせいできる。以下いかはそのれいである。

#include <windows.h>
#include <tchar.h> // WinMain と wWinMain をえる _tWinMain などが定義ていぎされている。
int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hInstPrev, LPTSTR lpszCommandLine, int nCmdShow)
{
    MessageBox(NULL, TEXT("Hello, world"), TEXT("App"), MB_OK);
    return 0;
}

なお、Windows NTけいにおけるAばんのAPI関数かんすうは、内部ないぶてきにWばんすラッパーとなっている[30]。AばんAPIに入力にゅうりょくされたマルチバイト文字もじれつはUnicode文字もじれつ変換へんかんされてからWばんAPIに入力にゅうりょくされ、WばんAPIから出力しゅつりょくされたUnicode文字もじれつはマルチバイト文字もじれつ変換へんかんされてAばんAPIの出力しゅつりょくとなる。

このプレフィックスのAはANSI、WはWideを意味いみする[31]。ANSIは、Windowsコードページの一部いちぶがANSI規格きかくのドラフトをもとにしたことに由来ゆらいする[32]ワイド文字もじ (wchar_t) はC/C++の用語ようごであるが、WindowsようのC/C++処理しょりけいにおいて、ワイド文字もじ大抵たいていUCS-2またはUTF-16として実装じっそうされている。また、OLE関係かんけいでは、Win32ですべてUnicodeされ、A/Wの区別くべつ存在そんざいしない。

なお、Windows 9xけいでは、UnicodeばんAPIは一部いちぶしか実装じっそうされていない[33]。ただし、Microsoft Layer for Unicode利用りようすることにより、ほぼすべてのUnicodeばんAPIが使用しよう可能かのうになる[34]。また、Windows CEでは、ぎゃくにUnicodeばんAPIしか実装じっそうしていない。NTけいでも、Unicodeを前提ぜんていとした仕様しよう変更へんこうおこなわれたり[35]、Theme APIなどあたらしいAPIでA/Wの2しゅ用意よういせずUnicodeをもちいるものだけを用意よういしたりするなど、徐々じょじょにUnicodeへ傾斜けいしゃする傾向けいこうにある。

Windows APIの歴史れきしは、もちろんWindows自体じたい歴史れきしはなせない関係かんけいにある。つねに、Windowsにしん機能きのう搭載とうさいされれば、それをアプリケーションソフトウェアから使用しようするためのあたらしいAPIが追加ついかされ、対応たいおうするあたらしいSDKが公開こうかいされることのかえしである。デバイスドライバー対応たいおうせまるものは、DDK/WDK経由けいゆ公開こうかいされる。

Windows APIの歴史れきしじょうもっとおおきな変革へんかくはWindows NTにともなうWin32の登場とうじょうだった。ポインタとハンドルも32ビットされたこと、Unicodeへの対応たいおうはかられたことがおおきな変化へんかである。

なお、現在げんざい[いつ?]ゆるやかに64ビットへの移行いこうすすんでいる。Win64では、ポインタおよびハンドルは64ビットされているが、それ以外いがいでは16ビットから32ビットへの移行いこうのようなおおきな変化へんかはない。なお、64ビットばんWindowsでは32ビットアプリケーションとの相互そうご運用うんようせい確保かくほするため、ハンドルの上位じょうい32ビットを使用しようする仕組しくみとなっており、ウィンドウ (HWND) などのユーザーオブジェクトハンドル、ブラシ (HBRUSH) やペン (HPEN) などのGDIオブジェクトハンドル、そしてミューテックス、セマフォ、ファイルなどの名前なまえきオブジェクトハンドルを32ビット/64ビットアプリケーションあいだ共有きょうゆうし、プロセスあいだ通信つうしん利用りようすることができる[36]。また、64ビットばんWindowsではWOW64により32ビットアプリケーションを実行じっこうできるが、16ビットアプリケーションを実行じっこうすることはできない[37][38]

互換ごかんせい

編集へんしゅう

Windows APIはシステム全体ぜんたい共有きょうゆうするDLLをつうじて公開こうかいされており、このシステムDLLに変更へんこうはいるとすべてのアプリケーションが影響えいきょうけることになる。このため、度重たびかさなるバージョンアップやセキュリティパッチの適用てきようによりコンポーネントの互換ごかんせいうしなってしまうことによるDLL地獄じごく (DLL Hell) の発生はっせいまねくことがある。このてんかんしては、Windows 2000で導入どうにゅうされたSide-by-Sideコンポーネント共有きょうゆうや、Windows XPで導入どうにゅうされた分離ぶんりアプリケーションとSide-by-Sideアセンブリ仕組しくみにより、ある程度ていど解決かいけつはかられている。

基本きほんてきにWindowsおよびWindows API自体じたい互換ごかんせい配慮はいりょした設計せっけいがなされており、バージョンアップのさい既存きそん公開こうかいAPIに破壊はかいてき変更へんこうはいることはない(時代遅じだいおくれとなったふるいAPIが推奨すいしょうになることはあるが、完全かんぜん削除さくじょされることはまれである)。公開こうかいAPIをただしく利用りようして開発かいはつされたアプリケーションやドライバーであれば、きゅうバージョンのOSで正常せいじょう動作どうさしていたものは、ほとんどのケースにおいて修正しゅうせいすることなく動作どうさする[39]。セキュリティ対策たいさくのためにWindows Vistaで導入どうにゅうされたユーザーアカウント制御せいぎょ (UAC) にかんしても、通常つうじょう権限けんげんのアプリケーションが直接ちょくせつアクセスできないディレクトリにたいするきを仮想かそうしてリダイレクトする仕組しくみが救済きゅうさいさくとして用意よういされている。しかし、アプリケーションやドライバーが特定とくていのバージョンのWindowsでしかうごかないような設計せっけいになっていた場合ばあい、アプリケーションが起動きどうできない、正常せいじょう動作どうさしないなどの互換ごかんせい問題もんだい発生はっせいすることがある。この問題もんだい回避かいひさくのひとつとして、Windowsには、きゅうバージョンのOSの動作どうさをある程度ていどエミュレートする「互換ごかんモード」が用意よういされている。たとえばバージョン番号ばんごう取得しゅとくするためのWindows APIにおいてきゅうバージョンのOSを偽装ぎそうしたかえすようにすることで、これらに依存いぞんしたアプリケーションへの影響えいきょう低減ていげんする[40]

Windows APIはWin16を拡張かくちょうして32ビット、64ビットされたという歴史れきしがある。そのため度重たびかさなる機能きのう追加ついかにより、高度こうど複雑ふくざつしその習得しゅうとく困難こんなんしているという問題もんだいがある[41]

Windows 8で導入どうにゅうされた新規しんき設計せっけいのWinRT APIは、名前なまえ空間くうかん利用りようして体系たいけいてき整理せいりされており、効率こうりつてきかつモダンなアプリケーション開発かいはつをサポートするが、Windowsストアアプリ(のちのUWPアプリ)はサンドボックス環境かんきょう動作どうさするために制約せいやくおおく、サードパーティー開発かいはつ主流しゅりゅうとはならなかった。結局けっきょく従来じゅうらいのWin32 APIや.NET Frameworkを使用しようしたデスクトップアプリケーションが主流しゅりゅうのままであるが、Win32 APIによる開発かいはつはGUIツールキットのサポートがよわく、レガシーな外観がいかんのGUIウィジェットしか使つかえないなどの問題もんだいがある[42]

ラッパーライブラリ

編集へんしゅう

Windows APIは比較的ひかくてきてい水準すいじゅんであるため、高水準こうすいじゅんインターフェイスたせたり、C/C++以外いがい言語げんごから利用りようしたりするための様々さまざまなラッパーライブラリやフレームワークが数多かずおお存在そんざいする。おもなものはつぎのとおり。

マイクロソフト

編集へんしゅう
Microsoft Foundation Class (MFC)
C++クラスによるWindows APIのラッパー。
Active Template Library (ATL)
C++テンプレートによるCOMのラッパー。
Windows Template Library (WTL)
ATLの拡張かくちょうとしてつくられた軽量けいりょうのWindows APIのラッパー。現在げんざい[いつ?]CPLもとづくオープンソースとなっている。
Object Windows Library (OWL)
MFCとどう時期じき公開こうかいされ、よりオブジェクト指向しこうつくられたラッパー。
Visual Component Library (VCL)
ボーランドがその開発かいはつしたDelphiによるラッパー。Windows Formsのベースにもなった。

.NET FrameworkやWindowsばん.NET Coreは、内部ないぶてきにWindows APIを利用りようして実装じっそうされているものの、基本きほんクラスライブラリなどはプラットフォーム依存いぞんとなるよう抽象ちゅうしょうされているが、Windows固有こゆう機能きのう使用しようしたGUIフレームワークや、Windows APIをうすくラップしただけの部分ぶぶん存在そんざいし、System.Windows名前なまえ空間くうかんMicrosoft.Win32名前なまえ空間くうかんなどにまとめられている[43][44]

脚注きゃくちゅう

編集へんしゅう
  1. ^ Windows API index - Win32 apps | Microsoft Docs
  2. ^ __stdcall | Microsoft Docs
  3. ^ x64の場合ばあいは__fastcallが採用さいようされている。
  4. ^ チャールズ・ペゾルド『プログラミングWindowsだい5はん』 〈うえ〉、アスキー、2000ねん10がつISBN 978-4756136008 
  5. ^ ASCII.jp:MinWinとVirtual DLLでわるWindowsカーネル (1/2)|あなたのらないWindows
  6. ^ ASCII.jp:ARMばんWindows 8実現じつげん布石ふせきとなったWindows 7の「MinWin」 (3/4)|基礎きそからおぼえる 最新さいしんOSのアーキテクチャー
  7. ^ Overview of the Windows API” (英語えいご) (2009ねん5がつ7にち). 2009ねん7がつ8にち閲覧えつらん
  8. ^ a b DirectX 8.0 の紹介しょうかい | Microsoft Docs
  9. ^ Getting started with DirectX Graphics - Win32 apps | Microsoft Docs
  10. ^ オーディオのリファレンス | Microsoft Docs
  11. ^ DirectX にかんしてよくせられる質問しつもん | Microsoft Docs
  12. ^ DirectX Frequently Asked Questions - Win32 apps | Microsoft Docs
  13. ^ Windows Multimedia - Win32 apps | Microsoft Docs
  14. ^ OpenGL - Win32 apps | Microsoft Docs
  15. ^ Windows HTTP Services - Win32 apps | Microsoft Learn
  16. ^ 本田ほんだ雅一まさいちの「週刊しゅうかんモバイル通信つうしん
  17. ^ Windows Vistaとはなにか?(3/3) - @IT
  18. ^ Petzold, Charles しる株式会社かぶしきがいしゃロングテール/長尾ながお高弘たかひろ やく『プログラミングWindows』 〈うえ〉(だい5はん)、アスキー、2000ねん10がつ、33ぺーじISBN 978-4756136008 
  19. ^ Petzold, Charles しる株式会社かぶしきがいしゃロングテール/長尾ながお高弘たかひろ やく『プログラミングWindows』 〈うえ〉(だい5はん)、アスキー、2000ねん10がつ、34ぺーじISBN 978-4756136008 
  20. ^ Microsoft Announces Visual C++ for Windows CE” (英語えいご). マイクロソフト (1997ねん4がつ1にち). 2009ねん1がつ30にち閲覧えつらん
  21. ^ Cross-Platform Application Development in Windows NT” (英語えいご) (2003ねん12月1にち). 2007ねん7がつ26にち閲覧えつらん
  22. ^ Microsoft Visual C++ 4.0 Cross-Development Edition for Macintosh (Archived Visual C++ Technical Articles)” (英語えいご) (1995ねん7がつ). 2007ねん7がつ26にち閲覧えつらん
  23. ^ Microsoft、ARM64対応たいおうのデスクトップばんWindows 10を計画けいかくか - エキサイトニュース
  24. ^ マイクロソフト、ARM64けWindowsアプリの開発かいはつ配布はいふ正式せいしきサポート - CNET Japan
  25. ^ Windows SDK 10にはARM64ようのインポートライブラリファイルなどがふくまれており、従来じゅうらいのネイティブデスクトップアプリとUWPアプリを開発かいはつできるようになっている。
  26. ^ マイクロソフト、「Itanium」チップのサポートを終了しゅうりょうへ - CNET Japan
  27. ^ デスクトップ アプリで Windows ランタイム API をす - Windows apps | Microsoft Docs
  28. ^ Working with Strings (Windows)” (英語えいご). MSDNライブラリ. マイクロソフト (2010ねん10がつ5にち). 2011ねん8がつ27にち閲覧えつらん
  29. ^ Surrogates and Supplementary Characters”. MSDNライブラリ (2009ねん1がつ12にち). 2010ねん1がつ19にち閲覧えつらん
  30. ^ Windows XP Professional の多言たげんオプションの比較ひかく”. TechNetライブラリ. 2010ねん1がつ19にち閲覧えつらん
  31. ^ Unicode in the Windows API”. MSDNライブラリ (2010ねん1がつ12にち). 2010ねん1がつ19にち閲覧えつらん
  32. ^ Chen, Raymond (2004ねん5がつ31にち). “Why is the default 8-bit codepage called "ANSI"?” (英語えいご). The Old New Thing. 2008ねん1がつ30にち閲覧えつらん
  33. ^ Other Existing Unicode Support” (英語えいご). MSDNライブラリ. 2010ねん1がつ19にち閲覧えつらん
  34. ^ Microsoft Layer for Unicode Reference” (英語えいご). MSDNライブラリ. 2009ねん7がつ31にち閲覧えつらん
  35. ^ [WinXP] Common Control 6.0 の EM_LIMITTEXT による入力にゅうりょく制限せいげん”. サポート技術ぎじゅつ情報じょうほう (2009ねん9がつ16にち). 2010ねん1がつ19にち閲覧えつらん
  36. ^ Interprocess Communication Between 32-bit and 64-bit Applications - Win32 apps | Microsoft Docs
  37. ^ Running 32-bit Applications - Win32 apps | Microsoft Docs
  38. ^ 64bit Windows時代じだい到来とうらいだい3かい アプリケーションの互換ごかんせい (1/3) - @IT
  39. ^ Compatibility and Reliability - Win32 apps | Microsoft Docs
  40. ^ Windowsの互換ごかんせいテクノロジの仕組しくみ(前編ぜんぺん)(1/3) - @IT
  41. ^ しお田紳でんしん. “.NET「本音ほんね相談そうだんしつだい1かい)Q3:どうしていま、.NETなのか?”. @IT. 2009ねん7がつ12にち閲覧えつらん
  42. ^ ASCII.jp:UWPからデスクトップアプリに回帰かいきすべく、MSがおくした「Project REUNION」 (1/2)
  43. ^ System.Windows Namespace | Microsoft Docs
  44. ^ Microsoft.Win32 Namespace | Microsoft Docs

関連かんれん項目こうもく

編集へんしゅう

参考さんこう文献ぶんけん

編集へんしゅう
  • Charles Petzoldちょ 『プログラミングWindowsだい5はんうえ〉』 アスキー、2000ねんISBN 4756136001
  • Charles Petzoldちょ 『プログラミングWindowsだい5はんした〉』 アスキー、2000ねんISBN 475613601X
  • Jeffrey Richterちょ 『Advanced Windows 改訂かいていだい4はん』 アスキー、2001ねんISBN 4756138055

外部がいぶリンク

編集へんしゅう