Exemplo n.º 1
0
 internal ImageImportDirectory(
     Module module,
     IMAGE.DATA_DIRECTORY data,
     IMAGE.DIRECTORY_ENTRY type
     ) : base(module, data, type)
 {
     unsafe {
         modcount = (int)(data.Size / sizeof(IMAGE.IMPORT_DESCRIPTOR)) - 1;
         //modcount--; // 最後の空項目を除く
     }
     descs = base.pData.Reinterpret <IMAGE.IMPORT_DESCRIPTOR>();
 }
Exemplo n.º 2
0
        public static ImageDataDirectory Create(Module module, IMAGE.DATA_DIRECTORY data, IMAGE.DIRECTORY_ENTRY type)
        {
            switch (type)
            {
            case IMAGE.DIRECTORY_ENTRY.IMPORT:
                return(new ImageImportDirectory(module, data, type));

            default:
                return(new ImageDataDirectory(module, data, type));
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// 指定した種類のデータディレクトリが存在しているか否かを取得します。
 /// </summary>
 /// <param name="index">存在を確認したいデータディレクトリの種類を指定します。</param>
 /// <returns>指定した種類のデータディレクトリが存在していた場合に true を返します。
 /// それ以外の場合に false を返します。</returns>
 public bool HasDirectory(IMAGE.DIRECTORY_ENTRY index)
 {
     return((int)index < this.Count && arr[index].Size > 0);
 }
Exemplo n.º 4
0
 protected ImageDataDirectory(Module module, IMAGE.DATA_DIRECTORY data, IMAGE.DIRECTORY_ENTRY type)
 {
     this.module = module;
     this.data   = data;
     this.type   = type;
 }
Exemplo n.º 5
0
 /// <summary>
 /// 指定した種類のデータディレクトリを取得します。
 /// </summary>
 /// <param name="index">取得するデータディレクトリの種類を指定します。</param>
 /// <returns></returns>
 public ImageDataDirectory this[IMAGE.DIRECTORY_ENTRY index] {
     get{ return(ImageDataDirectory.Create(this.module, arr[index], index)); }
 }