![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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, или что к файлу нет доступа или что-нибудь еще.