夕暮ログ

C#やJavascript、最近はAndroidなんかも好きなtinqのブログ。「夕暮れログ」

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ILSpy(4)ソース、リソースの保存・便利な使い方

ILSpyの使い方を3回にわたって書きました。
今回は、ILSpyの便利な使い方を紹介します・・・

ぜひやるのをお勧めするのは、WindowsAPI用の列挙体とDllImport群の抽出です。
必要になったときに抽出するでもかまいませんが、とてもベンリです。
[Open from GAC]で「PresentationFramework」を読み込んでください。

そして、ツリービューの上のテキストボックスに「WindowMessage」と入力してみてください。
[WindowsBase]=>[MS.Internal.Interop]のなかに、WindowMessageという列挙体が見つかるはずです。それが、WM_PAINTなどのメッセージの列挙体です。
他にも、いくつかの定数の列挙体があります。

また、[System]=>[Microsoft.Win32]=>[NativeMethods]と[mscorlib]=>[MicrosoftWin32]=>[NativeMethods]にも大量の定数があります。これは列挙体にはなっていないのが多いので、使いにくいですが。
また、ネイティブ用の構造体も数多くあります。

もちろん、DllImportされた関数も数多く、いや、ほぼすべてそろっています。
たとえば、「SendMessage」で検索してみてください。
各種列挙体用を含めた、大量のオーバーロードのある、SendMessageが見つかると思います。
ですが、やはりすべてというわけではないようです。「SHGetDesktopFolder」などは見つかりませんでした。


また、有用そうなラッパーも存在します。たとえば、ネイティブウィンドウを操作するためであろう、Windowクラスなどというものがあります。何か、そういうことをする際に参考にできるソースも山ほどあります。



最終的に、そういうものがほしい場合、具体的な関数名、構造体名、定数名などで検索すれば出てきます。
まとめてほしかったら、「NativeMethods」と検索すれば、ボロボロと出てくるので、適当なクラスを選択して、
[File]=>[Save Codes]を選択して保存してください。

アクセス装飾子がinternalなので、自分のプログラムに組み込めばすぐにでも使えるはずです。



また、リソースを保存することもできます。
たとえば、System.Windows.Formsのなかの「Resource」を開いてみてください。
フォームデザイナで使われる画像やカーソルなどが入っています。クリックすると右に表示されるので、下にある[Save]ボタンを押すことで保存できます。




最初にも書きましたが、コードを利用する際は、著作権に注意してください。構造体やDllImport、定数などは著作権が発生するようなものではありませんが、ラッパークラスなどにはしっかりと著作権があります。特に、売られているようなものを勝手に解析して使ってはいけません。そこは注意してください。



最後に


ILSpyはまだベータ版のようです。使ってわかるように、最低限の機能しか実装されていません。
まだまだ使いやすい、といえる領域に入っていません。
たとえば、正規表現での検索、タブ、ブックマークなどなどがついてくれるといいですね。
これからの開発に期待しましょう。


この記事を書くにあたって、参考にさせていただきました。
@IT - 無償の逆コンパイラ「ILSpy」を利用するには?[C#]
関連記事

コメント

ここをクリックしてコメントを投稿

非公開コメント

トラックバック

http://tinqwill.blog59.fc2.com/tb.php/24-9938d93a

« next  ホーム  prev »

プロフィール

tinq tinq(もしくはTinqWill)

Sky  For   Every 改装予定

プログラミングお勉強中の高校生。月一くらいは更新したい

最新記事

カテゴリ

月別アーカイブ

検索フォーム

最新コメント

リンク

最新トラックバック

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。