
03.09.2007, 14:37
|
|
Участник форума
Регистрация: 21.04.2007
Сообщений: 289
С нами:
10029911
Репутация:
368
|
|
xqwerx , вот код,которого я думаю будет достаточно для проверки:
Код:
invoke BeginUpdateResource,addr File ;Файло ресурсы которого апдейтятся
invoke _lopen,offset FtE,OF_READ ;файло которое записывается
mov sm1,eax
invoke CreateFileMapping,sm1,NULL,PAGE_READONLY,0,0,NULL
mov sm9,eax
invoke MapViewOfFile,sm9,FILE_MAP_READ,0,0,0
mov sm10,eax
invoke lstrlen,sm10
invoke UpdateResource,sm4,RT_RCDATA,1,0,sm10,eax
invoke _lclose,sm1
все sm'мы дворды...
invoke UnmapViewOfFile,sm10
|
|
|

03.09.2007, 14:38
|
|
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
С нами:
10531106
Репутация:
1338
|
|
_Great_
Ну да... Если файл открыт с флагом FILE_FLAG_OVERLAPPED,то lpOverlapped для синхронизации! Если флага FILE_FLAG_OVERLAPPED нет, то lpOverlapped - как смещение! (Подобно SetFilePointer)
// Я его обычно для синхронизации юзаю 
Последний раз редактировалось xqwerx; 03.09.2007 в 15:22..
|
|
|

03.09.2007, 14:43
|
|
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
С нами:
10531106
Репутация:
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..
|
|
|

03.09.2007, 14:55
|
|
Участник форума
Регистрация: 21.04.2007
Сообщений: 289
С нами:
10029911
Репутация:
368
|
|
Все решилось..был невнимателен.хаха...дело в том я перепутал лстрлен и гетфайлсайз,у меня там идет запись имен файлов в ресурсы,так вот lstrlen как раз должен был использовать для имен файлов, а использовал для размера файла.
|
|
|

02.10.2007, 22:36
|
|
Постоянный
Регистрация: 12.07.2006
Сообщений: 327
С нами:
10437270
Репутация:
117
|
|
invoke recv, hSocket, addr bufer, sizeof bufer, 0
собственно ресивлю хтмл страницу от веб сервера.
как лучше это сделать?
непонятно как быть с памятью
bufer db 1000000000000 dup (?)
так ведь непойдёт)
|
|
|

03.10.2007, 02:43
|
|
Banned
Регистрация: 22.08.2006
Сообщений: 608
С нами:
10378404
Репутация:
1095
|
|
>> bufer db 1000000000000 dup (?)
>> так ведь непойдёт)
да нормально петабайтная страница как раз поместица.. +))
|
|
|

03.10.2007, 02:47
|
|
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
С нами:
11710201
Репутация:
134
|
|
VirtualAlloc, VirtualFree....
|
|
|

18.10.2007, 22:40
|
|
Участник форума
Регистрация: 22.11.2006
Сообщений: 117
С нами:
10246130
Репутация:
141
|
|
Есть книжка, с кучей примеров кода, но во всех автор инклудит свою библиотеку, и использует описаные там процедуры... Нашел на диске следующие файлы:
http://i042.radikal.ru/0710/63/13d76e5e03d8.jpg
---
Как умел раскидал их по директориям, но видно, что плохо умею.
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.
Assembling: C:\masm32\progs\5.asm
C:\masm32\progs\5.asm(3) : fatal error A1000: cannot open file : irvine32.inc
Как грамотно её добавить?
|
|
|

18.10.2007, 23:21
|
|
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
С нами:
10140806
Репутация:
932
|
|
Кидай irvine32.inc в C:\\masm32\Include
А потом: include /masm32/include/irvine32.inc
|
|
|

30.10.2007, 19:40
|
|
Members of Antichat - Level 5
Регистрация: 28.05.2007
Сообщений: 729
С нами:
9976706
Репутация:
1934
|
|
Подскажите удобную среду разработки ассемблерных программ (блокнот не предлагать)
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Вопросы для новичков! (faq)
|
PEPSICOLA |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
92 |
14.05.2010 17:59 |
|
ОС с нуля
|
z01b |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
36 |
03.07.2008 15:30 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|