鷲ノ巣

C# とか PowerShell とか。当ブログの記事は(特に公開直後は)頻繁に改定される場合があることをご了承ください。

PE ファイルについて (2) - IMAGE_FILE_HEADER

この記事は Windows & Microsoft技術 基礎 Advent Calendar 2015 の 23 日目です。
今度は期日前に書き上げましたよ!

前回は肝心なところで終わってしまいました。
今回は続きの NT ヘッダー編から。
と言ってもですね、NT ヘッダーを全部解説し終わったら、PE ファイルの解説なんて 9 割方終わったようなもんです。
なので、しばらくは NT ヘッダーの解説が続きます。

続きを読む

【保存版】構造体のマーシャリングのまとめ

P/InvokeWindows API を呼び出す際、引数に構造体を渡すには、割と色々な方法があります。
最近ちょっと混乱したので、改めてまとめてみました。
これまで知らなかった便利な方法も紹介しています。
新機能でも何でもありませんが、よく P/Invoke を使われる方にはご一読頂いて損はない内容だと思います。

ちなみに、本記事では、C# で言う struct と class を総称して「構造体」と呼ぶこととします。
struct と class の区別が必要な場合は「struct」と「class」または「値型」と「参照型」と呼び分けます。
本文中では「struct ≠ 構造体」ということにご留意ください。

なお、本記事の内容は、Windows API の呼び出しに限定した内容になっています。
COM の場合はまた事情が違うのですが、そちらは割愛させて頂きます。

続きを読む