過去のブログのアーカイブ
この記事は前身のブログのアーカイブを引き継いだものです.
画像が正しく表示できないなど,コンテンツの表示に問題がある恐れがあります.C#やVB.NETでWinAPIを使用する際にDllImportを呼び出す必要があるのですが、WinAPIの型とC#の型では違う所があったりと書くのは少々面倒なところがあります。
そんな悩みを解決してくれるのがPInvoke.netというサイト
P/Invoke.netとは?
WinAPIを使用するときに貼り付けるソースコードをずらずらっと並べられているサイトで、WinAPIを呼び出したいときにはとても役に立つサイトです。
PINVOKE.NET
http://www.pinvoke.net/index.aspx
使い方
使い方はとってもシンプル。ただやりたい事を実行してくれるメソッド名(GetWindowLong)は予め知っておく必要があります。
その辺りについては調べておきましょう
例えばウィンドウの状態を取得するGetWindowsLongのソースコードを知りたい場合、まず検索ボックスにメソッド名を入力します
そしたら関連するメソッドとともに検索結果に出てきますので、メソッド名をクリック
メソッドに関する情報とともにソースコードが出てきました。これを開発環境にコピペするだけでいいです。
ソースコードは正しく動作するように属性をつけてくれたり正しい型にしてくれていたりとかなり信頼性の高いものとなっています。
[DllImport("user32.dll", SetLastError=true)] static extern System.UInt32 GetWindowLong(IntPtr hWnd, int nIndex); // or [DllImport("user32.dll", SetLastError = true)] static extern IntPtr GetWindowLong(IntPtr window, int index);
また、メソッドのほかにも構造体やデリゲートなど、WinAPIに関することは何でも出てきます。
Visual Studioに組み込めるアドオンもアルようなのでこれで開発が一弾と捗るようになるかもしれません。