« ホワイト学割 | メイン | Microsoft Research F# 1.9.3.14 »

pinvoke.net

私が時折情報として当てにするサイトの一つに pinvoke.net があるこのサイトは所謂、wiki を利用したサイトで p/invoke の情報が書かれている。p/invoke は Platform Invoke のことであり、.NET Framework 上からネイティブの DLL を利用する手段である。恐らくは、Micorosft JVM 上の J/Direct が発祥となった技術だと思われるが p/invoke を利用することでネイティブのDLL を呼べるため、.NET Framework 上にラッパーなどの代替手段のない API を呼ぶ必要があるときによく用いられる。

p/invoke を用いるには、当然のことながら呼び出すべき DLL の呼び出し形式を把握し、その上で適切な定義を書く必要がある。単純な整数の引き渡しなどであれば簡単であるがそれをいちいち考えるのはそれなりに手間である。そういった、手順を集めたデータベースサイトが pinvoke.net である。例えば、pinvoke.net で imm32.dll 内の関数 ImmConfigureIME を探すと次のような記述が見つかる。

[DllImport("imm32.dll", SetLastError=true)]
public static extern bool ImmConfigureIME(IntPtr, hKL, IntPtr hWnd, UInt32 dwMode, IntPtr lpData);

こういった情報は、有用で使える。無論、ただカットアンドペーストするのではなく内容を理解した上で使いこなせればなおいい。事実、Windows Vista 上でゲーム等で日本語入力を実装する際、多くの事例ではまったのはサンプルコードのカットアンドペーストが発端なのだから。アンチパターン中にカットアンドペーストもあるが。

このエントリーをはてなブックマークに追加 Save This Page to del.icio.us このエントリーをlivedoorクリップに追加 このエントリーをニフティクリップに追加 このエントリーをBuzzurlに追加このエントリーをBuzzurlに追加 このエントリーをFC2ブックマークへ追加 このエントリーをnewsingへ追加 このエントリーをYahoo!ブックマークに追加

トラックバック

このエントリーのトラックバックURL:
http://www.cworld2000.com/cgi-bin/mt/mt-tb.cgi/392

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年01月31日 16:18に投稿されたエントリーのページです。

ひとつ前の投稿は「ホワイト学割」です。

次の投稿は「Microsoft Research F# 1.9.3.14」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

検索

この Weblog について

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type 3.35