Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > Visual C++
Перезагрузить страницу Секция ресурсов в PE формате
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
psu psu вне форума
Member
 
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.12.2005
По умолчанию Секция ресурсов в PE формате - 04.01.2006, 12:09

Привет всем.
Разбираюсь вот с PE форматом, а точнее, с секцией ресурсов.
Считываю поддиректории и нахожу среди них группу иконок, далее получаю смещения на данные каждой иконки... и тут - облом. Указатель становится сразу ЗА данные иконки, а не на начало. Проверил несколько екзешников - та же фигня.
Кто сталкивался с эти или имеет опыт работыс PE форматом, прошу ответить.

ЗЫ. Всех с Новым Годом!!!
Ответить с цитированием
  (#2 (permalink)) Старый
psu psu вне форума
Member
 
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.12.2005
По умолчанию 04.01.2006, 13:33

Вот функция:

Код:
BOOL ExtractIconsFromResource( char* psResource )
{
  IMAGE_RESOURCE_DIRECTORY *Dir;
  IMAGE_RESOURCE_DIRECTORY_ENTRY *Entry;
    
  Dir = ( IMAGE_RESOURCE_DIRECTORY* )psResource;//root dir

  Entry = ( IMAGE_RESOURCE_DIRECTORY_ENTRY* )( Dir + 1 );//first entry in root dir
    
  int nCount = Dir->NumberOfIdEntries + Dir->NumberOfNamedEntries;
  int i;

  IMAGE_RESOURCE_DIRECTORY_ENTRY* pEntries[100];
  int nEntries = 0;
    
  //cycle on root dir entries
  for( i = 0; i < nCount; i++ )
  {
    if( Entry->Id == 0x0e ) //icon group subdir
    {
      Dir = ( IMAGE_RESOURCE_DIRECTORY* )( psResource + Entry->OffsetToDirectory    );
      nCount = Dir->NumberOfIdEntries + Dir->NumberOfNamedEntries;

      //scan icons dir
      // each entry points to subdirectory
      Entry = ( IMAGE_RESOURCE_DIRECTORY_ENTRY* )( Dir + 1 );
      for( i = 0; i < nCount; i ++ )
      {
         pEntries[ i ] = new IMAGE_RESOURCE_DIRECTORY_ENTRY;
         memcpy( pEntries[ i ], Entry, sizeof( IMAGE_RESOURCE_DIRECTORY_ENTRY ) );
         Entry++;
      }

      //gather icons data
      int j;
      int nIcons;
      IMAGE_RESOURCE_DATA_ENTRY* pData;
      for( i = 0; i < nCount; i ++ )
      {    
         //enter subdir
         Dir = ( IMAGE_RESOURCE_DIRECTORY* )( psResource + pEntries[ i ]->OffsetToDirectory );
    
         //scan each icon subdir
         Entry = ( IMAGE_RESOURCE_DIRECTORY_ENTRY* )( Dir + 1 );
    
         //get data entry
        pData = ( IMAGE_RESOURCE_DATA_ENTRY* )( psResource + Entry->OffsetToData );
      }
      break;
    }
    Entry++;
  }
  delete[] pEntries;
  return( TRUE );
}
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Блокировка локальных ресурсов макр Сетевые подключения 0 02.08.2011 16:36
требуемая секция в INF-файле не найдена nrlynx Любые вопросы от новичков 25 31.07.2011 22:37
EnterCriticalSection критичная секция Elecstorm С/С++ 3 01.11.2010 21:12
Загрузка dll из ресурсов приложения Alex_Sosim C++ Builder 5 08.10.2009 22:24
Использование ресурсов ПК в сети akalibr Администрирование и базы данных 13 01.08.2008 09:22
Секция для ресурсов c++ Общие вопросы программирования 4 13.11.2006 09:55
Скрытие отображение ресурсов Alex_b_v Delphi 1 22.09.2006 05:44
Как собрать плагин из ресурсов AlekseyVolk Eclipse 0 03.05.2006 12:26
файл ресурсов imported_Ali_x Visual Basic 0 15.09.2005 22:01
Подключение ресурсов в .NET Matrixman .NET 1 14.03.2005 23:03
Загрузка произвольных ресурсов в VC++ 7 _Cyclope Visual C++ 3 23.10.2004 21:23
Проектирование контента веб-ресурсов Jeezekil Общие вопросы создания ПО 15 25.09.2002 14:54



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов