
03.09.2007, 14:43
|
|
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме: 1845671
Репутация:
1338
|
|
Код HTML:
invoke lstrlen,sm10
Lol -> Вот она и ошибка! Как можно размер файла мерить функций для строк! lstrlen- эта функция перебирает байты и когда находит 0x00 - то значит конец строки и возвращает количество байтов до нуля, это для работы с null-terminated string!
Поэтому у тебя и записываются в ресурсы 4 байта в частности сигнатура DOS заголовка "MZ" это же строка в начале файла и заканчивается она нулевым байтом...
Это можно заметить при просмотре файла в HEX-режиме
Код:
00400000 4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00 MZђ.......яя..
00400010 B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 ё.......@.......
Говорю GetFileSize тебе в помошь:
Код:
DWORD GetFileSize(
HANDLE hFile, // handle of file to get size of
LPDWORD lpFileSizeHigh // address of high-order word for file size
);
invoke GetFileSize, sm1, 0
теперь в eax размер файла!!!
Последний раз редактировалось xqwerx; 03.09.2007 в 14:50..
|
|
|