Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Dll или нет... [D7, WinXP]


Wiz@rd ©   (2005-12-17 22:20:00) 

Допустим есть любой файл, надо определить dll это или нет. Т.к. при LoadLibrary винда ругается на то что это не dll нифига. (Что-то типа реализации плагинов).


  (2005-12-26 10:12:00) [1]

Удалено модератором


Игорь Шевченко   (2005-12-19 15:19:00) [2]

Leonid Troyanovsky ©   (19.12.05 14:55) [6]

Воистину. Век живи, век учись, спасибо :)


Leonid Troyanovsky   (2005-12-19 14:55:00) [3]


> Игорь Шевченко ©   (19.12.05 14:42) [5]

> GetBinaryType


Ну, то ж application, а запрос на dll.

--
Regards, LVT.


Игорь Шевченко   (2005-12-19 14:42:00) [4]

GetBinaryType


Leonid Troyanovsky   (2005-12-19 09:36:00) [5]


> Wiz@rd   (17.12.05 23:49) [2]
> ДА ё-маё, во-первых у меня расширение не dll, и скачиваются
> они прогой с нета, так что расширение не принципиально,
> хоть dll, но там можно подсунуть и не dll, или скачается



Определить PE (NE) можно путем SHGetFileInfo.

--
Regards, LVT.


palva   (2005-12-18 00:07:00) [6]

> но этот error некрасиво.
А почему некрасиво, если вы его перехватываете? Вы что, сами хотите его почитать и определить? Тогда читайте. Первые байты должны быть 'MZ', а дальше купите книжку Румянцева и изучайте формат файла, проверяйте длины, контрольные суммы, проверяйте докачан ли файл, не было ли искажений при передаче.


Wiz@rd   (2005-12-17 23:49:00) [7]

ДА ё-маё, во-первых у меня расширение не dll, и скачиваются они прогой с нета, так что расширение не принципиально, хоть dll, но там можно подсунуть и не dll, или скачается html файл с каким-нибудь 404, а винда уже сама при LoadLibrary ругнётся error'ом что мол образ dll корявый, 0 то он вернёт, но этот error некрасиво.


palva   (2005-12-17 23:41:00) [8]

Если расширение dll, значит dll. Если LoadLibrary ругается, значит ОС либо не может его прочитать, либо не может понять. Нужно проверить возвращаемое значение на ноль, вызвать GetLastError и по результату определить, что это не dll, или что к файлу нет доступа или что-нибудь еще.


Наверх

Титульная страница Поиск, карта сайта Написать письмо