Я использовал программу SyncBackFree (рейтинг CNET 4.5 *), чтобы скопировать несколько тысяч файлов с одного жесткого диска на другой. Все, казалось, работало хорошо, и не было ни ошибок, ни ошибок в файле журнала. Я только что заметил, что куча DLL-файлов в одной директории - правильная длина, но все данные равны нулю (используя шестнадцатеричный просмотрщик). Я случайно проверил несколько других файлов, таких как изображения и видео, и все они кажутся нормальными. Почему в DLL-файлах все нули? Я сделал копию, потому что мой жесткий диск работает медленно, и я беспокоился о возможном сбое. Я запустил программу для проверки моей системы и жесткого диска, и она говорит, что все в порядке.

2 ответа2

1

Учтите, что в оригиналах могли быть все нули

Это может быть просто заблуждением. Пожалуйста, посмотрите на другие библиотеки DLL и посмотрите, произошло ли это со всеми из них или произошло в некоторых определенных ситуациях. DLL - это просто файлы, поэтому они будут обрабатываться одинаково. также посмотрите, не идет ли какое-то восстановление или что-то странное, потому что в нем могли быть файлы-заполнители, которые имели все нули правильного размера и просто собирались вернуться и заполнить их соответствующими данными позже. Это может быть хорошей возможностью, потому что я знаю, что у торрента есть опция, которую вы можете установить, которая делает по существу то же самое, так что гарантируется достаточно места, чтобы сделать это.

0

Это скорее наблюдение, чем ответ, но это может быть полезно, так что здесь ...

У меня есть приложение Win32, которое использует DLL InPOut32.dll для прямого доступа к параллельному порту при работе в Windows 95 и XP. Это работало нормально, даже после того, как приложение было перенесено на 64-битную машину. Однако я попытался запустить его снова на днях и получил сообщение:

inpout32.dll is either not designed to run on Windows or it contains an error. Try installing the program again using the original installation media or contact your system administrator or the software vendor for support.

Я открыл файл DLL с помощью шестнадцатеричного редактора, и он был заполнен нулями! Я на 90% уверен, что это только начало появляться на наших машинах x64 - то есть DLL не была поймана ранее.

К счастью, он все еще находился в стадии разработки, поэтому есть замена. Поместив его в ту же папку, что и exe, я снова начал работать.

Поэтому я думаю, что, возможно, Windows выполняет какую-то проверку работоспособности DLL, когда загружает ее, но очистка ее до нуля кажется немного чрезмерной.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .