Показать сообщение отдельно

  #130  
Старый 03.09.2007, 14:43
GlOFF
Постоянный
Регистрация: 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..
 
Ответить с цитированием