Win32 APIとは

Win32 APIはWindowsディレクトリに存在するuser32.dll等のSystem Dllが持つ関数(HSPで言うところの命令)のことを呼びます。Win32 APIはWindowsで動くアプリケーション(以下Win32アプリ)を作るための関数を提供します。Win32アプリケーションは全てこのWin32 APIを呼び出しています。

互換性

Win32 APIはWindows95時代に完成されたものではなく、Windowsのバージョンアップ==Win32 APIの追加です。そのため古いWindowsでは使用できない関数もありますので、十分注意してください。有名どころとしてはWindows2000で追加されたレイヤードウィンドウがあげられます。

また、プロセス周りなどではWindows9xとNT系では大きく仕様が異なるなど、9xとNTの内部の違いに起因する問題もあります。下位については基本的に保障されているので問題ないでしょう。

文字コード

HSPはアルファベット(半角文字)が1バイト、日本語(全角文字)が2バイトのシングルバイト文字コードを使用します。Windows 9x世代のAPIは一部を除いて全てこれで処理できますが、NTが扱う文字コードはUnicode、マルチバイト文字コードを使用するものがあります。これら両者をサポートしている関数は最後に'A'または'W'がつきます。(SendMessageA,SendMessageW)シングルバイト文字は'A'がつく関数であり、通常はこれを用いればよいでしょう。

Unicodeのみをサポートする関数を呼び出す場合は文字コードの変換が必要になります。Unicodeのみをサポートする関数の例としては、GDI+があげられます。

解放の概念

HSPは殆ど「捨てる」という概念がありませんが、Win32 APIは「貰ったものは返す」が定石です。これを怠った場合最悪再起動が必要になる場合があります。

WinFX API

LonghornではWin32 APIはWinFX APIにとって代わられ、Win32 APIは互換性のためだけに残されることが勧告されています。WinFX APIは.NET Frameworkを延長した位置にありManagedコードから使用されます。

現時点のHSPはManagedコードを扱うことはできないため、これを使用することはできません。最もLonghorn自体まだ先の話であり、将来的にどうなるかは不明です。

goto Top

Copyright(C) by Project.API

PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル