|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.06.2014, 11:51 | #1 |
Пользователь
Регистрация: 24.06.2014
Сообщений: 38
|
Мапирование dll в память
Задача такая: открыть dll файл(не мой) в обычном текстовом виде(каким его могут открыть обычные блокноты), найти нужную последовательность символов и заменить их.
Проблема: как сделать , так чтобы изменения происходили в файле ? Код:
|
24.06.2014, 11:54 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А зачем мапировать? Считывай по N байт, производи поиск в считанном. Если нашел то получай координаты для замены становись в ту позицию в файл и заменяй через WriteFile(). Проекция файла тут... ну как по мне лишняя.
I'm learning to live...
|
24.06.2014, 11:58 | #3 |
Пользователь
Регистрация: 24.06.2014
Сообщений: 38
|
Ну так быстрее должно быть, просто файл не маленький
|
24.06.2014, 12:36 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Хм... Насколько не маленький если не секрет?
I'm learning to live...
|
24.06.2014, 12:38 | #5 |
Пользователь
Регистрация: 24.06.2014
Сообщений: 38
|
20 мб. Может и не совсем большой, но считывается долго(
|
24.06.2014, 13:27 | #6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
20mb ДЛЛка... Ниче так для библы как по мне... Это что за библиотека такая? Иконки?
Цитата:
Вот если в цикле считывать по мегабайту в массив в нем проводить поиск. И так 20 раз. Не так уж и проблемно.
I'm learning to live...
|
|
24.06.2014, 13:32 | #7 |
Пользователь
Регистрация: 24.06.2014
Сообщений: 38
|
Да от игрушки одной. Хочу , что-то типо патча замутить. А то , что долго мне показалось тогда, когда я хотел на экран просто содержимое вывести через cout для проверки.
|
24.06.2014, 13:45 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ха! Так на экран 20мб выводить это конечно долго будет )))
Патчи же так не делают. Не морочь голову считывай по пакетам и там ищи.
I'm learning to live...
|
24.06.2014, 13:46 | #9 |
Пользователь
Регистрация: 24.06.2014
Сообщений: 38
|
А с помощью какой функции лучше считывать тогда ?
|
24.06.2014, 13:52 | #10 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Та в твоем случае можно не мутить с WinAPI вообще а использовать стандартные сишные fopen()\fread()\fwrite()\fclose()
Проще будет. ИМХО.
I'm learning to live...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Инструкция для сборки приложений на Qt в один exe без зависимостей от libstdc++-6.dll, libgcc_s_dw2-1.dll, Qt5Core.dll и т.д. | 8Observer8 | Qt и кроссплатформенное программирование С/С++ | 12 | 25.06.2015 03:18 |
dll, классы и динамическая память | Manya | Visual C++ | 3 | 15.05.2013 18:28 |
запись в память загружаемой dll | BBBW | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 6 | 20.04.2012 00:24 |
dll в память и запустить =) | xrob | Общие вопросы Delphi | 27 | 17.03.2012 09:31 |