ブログ「サイバー少年」

ブログ「サイバー少年」へようこそ!
小学六年生ごろからプログラミングを趣味にしている高校生のブログです。
勉強したことについての記事などを書いています。フリーソフトも制作、公開しています。
(当ブログについて詳しくは「ブログ概要紹介」を参照)

サイバー少年が作ったフリーソフトは「サイバー少年の作品展示場」へ

C#でWinAPIを呼ぶ方法を覚えた。

.NETのライブラリはかなり充実していますが、
中にはまだ実装できていない機能もあるんですよ。

そういうときはAPIを呼ぶしかないんですが、マネージコードとの違いがありすぎて、
私は今まで敬遠してしまっていました。

しかし、やはりAPIを呼ぶしかないケースが出現するわけです。

そこで、C#からAPIを呼ぶ方法を学習しました。


DllImportってクラスだったんですね。

C#やVB.NETには属性ってのがあるようで、クラスやメソッドに付加することができるんだそうです。

初心者には分からん(笑)

ちなみに、属性もクラスでできています。
DllImportは「アンマネージのDLLを呼び出す」ための属性用のクラスなんですね。
本名は、
“System.Runtime.InteropServices.DllImportAttribute”でした。

属性を指定するときは[]で囲むので、[DllImport("DLL名")]と書いて、
あとはAPIに合うように引数、戻り値を設定すればいいようです。

単純なAPIなら簡単だったんですが、構造体を用いるAPIとか、ポインタ(特に関数ポインタ)を用いるAPIとかは難しそうです。

まだ、手をつけていません…。


しかし、APIを使えるようになったら、可能なことが広がりますからね。
かかってこい、アンマネージド!

tag:

コメント

コメントの投稿

トラックバック

トラックバック URL
http://cyberboy6.blog.fc2.com/tb.php/206-b8104d4d
この記事にトラックバックする(FC2ブログユーザー)

当ブログをご利用(閲覧等)になる場合は必ず「当ブログの利用規定」をお守りください。