今回からデータ本体に踏み込んでいきます。初回はエクスポート情報。公開している関数の情報です。コード多めで行きますよ。オプションを使います。エクスポート情報を表示したものの冒頭を掲載します。関数をエクスポートする方法について知っておきましょう。ファイルを使った方法を紹介します。ファイルはこんな感じです。解説することはありません。ファイルの例を見てみましょう。Hige.Sori上から順に説明していきますね。序数の指定(@2)があります。内で一意な数値を持ちます。関数のアドレスを得る際に、関数名の代わりに使うことができます。序数で呼び出すと、呼び出しがちょっとだけ高速になりますが、微々たるものです。わかりにくくなるので推奨される方法ではありません。ファイルで序数を明示的に指定する必要はありません。順に、関数名の昇順で自動的に番号が振られます。キーワードが指定されています。つけると、この関数は無名になります。関数名でも序数でも指定できますが、無名関数は序数でしか呼び出すことができません。行は関数の転送を指定しています。関数が実体であることを意味します。関数を呼び出しているわけです。切り出した場合の互換性維持などに使えます。構造体に格納されています。回の内容を思い出してください。ディレクトリのサイズです。構造体の定義はこうなっています。*PIMAGE_EXPORT_DIRECTORY;では、メンバー解説です。Characteristics使用されていません。TimeDateStampこのファイルの作成時刻です。MajorVersionMinorVersion使用されていません。文字列への相対仮想アドレスです。エクスポートする関数の序数のベース値です。エクスポートする関数の数です。エクスポートする名前付き関数の数です。エクスポートする関数の相対仮想アドレスの配列を指す相対仮想アドレスです。わけがわかりませんね。エクスポートする関数の名前の相対仮想アドレスの配列を指す相対仮想アドレスです。エクスポートする関数の名前と序数の対応テーブルを指す相対仮想アドレスです。図とコードで理解するメンバー逐次解説の後半はわけが分からないと思うので、図で表します。コードも載せちゃいますよ。関数については前回の記事を参照してください。表示すると、このような結果が得られます。出力を再現しています。ファイル中で明示的に序数を指定した関数がある場合は、その最小値になります。